Je souhaite mapper plusieurs listes dans le même passage. Y a-t-il un nom pour ce modèle?Y a-t-il un nom pour 'map'ping plusieurs listes?
Essentiellement, je cherche le nom de quelque chose essentiellement similaire à ceci:
mapMultiple :: (([a,b]) -> c) -> [[a],[b]] -> [c]
Mais espère pouvoir avoir plus de deux listes (mon haskell est rouillé et je ne suis pas sûr de la façon dont pour écrire cette signature de type)
pour quelque chose de plus concret, disons que je listes A
et B
tels que:
A = [1, 2, 3, 4] and B = ['A', 'B', 'C', 'D']
Je veux être en mesure de cartographier une liste de A et B comme ceci:
mapMultiple(([num, letter]) => ([ num, letter ]), [A, B]) == [[1,'A'], [2,'B'],[3,'C'],[4,'D']]
Dans le code psuedo rugueux, voici comment vous mettre en œuvre:
mapMultiple = (fn, lists) => map(fn, zip(lists))
I cherche le nom commun pour ce modèle/fonction.
points de bonus si vous connaissez son nom de mise en œuvre (ou si elle n'a pas mis en œuvre) dans Ramda.js
Certainement 'zipWith'. Comme méthode: 'let xs = [1, 2, 3, 4], ys = ['A', 'B', 'C', 'D']; xs.map ((x, i) => [x, ys [i]]) 'ou en tant que fonction curry:' const zipWith = ys => xs => xs.map ((x, i) => [x , ys [i]]); zipWith (ys) (xs); '. Cependant, je n'ai pas de solution ramda. – ftor