Scott Christopher's answer is clearly the correct one. zipWith is designed for precisely this sort of scenario. In your title, you ask how to do this while mapping. I would like to point out that while Ramda does offer an option for this (see addIndex for details), it is generally frowned upon. The reason for this is important for learning more about FP.
One understanding of map is that it transforms a list of elements of one type into a list of elements of another type through the application of the given function to each element. This is a fine formulation, but there is a more general one: map transforms a container of elements of one type into a container of elements of another type through the application of the given function to each element. In other words, the notion of mapping can be applied to many different containers, not just lists. The FantatsyLand specification defines some rules for containers which have map methods. The specific type is Functor, but for those without the relevant mathematical background, this can be thought of as Mappable. Ramda should interoperate well with such types:
const square = n => n * n;
map(square, [1, 2, 3, 4, 5]) //=> [1, 4, 9, 16, 25]
// But also, if MyContainer is a Functor
map(square, MyContainer(7)) //=> MyContainer(49)
// and, for example, if for some Maybe Functor with Just and Nothing subtypes
const {Just, Nothing} = {Maybe}
// then
map(square, Just(6)) //=> Just(36)
map(square, Nothing()) //=> Nothing()
Ramda's map function calls the supplied transformation function with just the element of the container. It does not supply an index. This makes sense as not all containers have any notion of indices.
Because of this, mapping is Ramda is not the place for trying to match indices. But that is at the heart of Ramda's three zip functions. If you want to combine two lists whose elements are matched by index, you could do it most simply like Scott did with zipWith. But you could also use zip, which works like this:
zip(['a', 'b', 'c', 'd'], [2, 3, 5, 7]) //=> [['a', 2], ['b', 3], ['c', 5], ['d', 7]]
followed by a call to map on the resulting pairs. zipWith simply lets you do the same in a single step. But without it, primitives like map and zip can still be combined to do what you like.