Je n'étais pas vraiment sûr de la façon d'exprimer le nom de ce sujet, donc si vous pouvez le préciser, veuillez le faire.Doseq évalue 1 x pour chaque y. Existe-t-il un moyen de le faire évaluer 1 x pour 1 y et ainsi de suite dans Clojure?
Mon exemple de code est la suivante:
(doseq [x [1 2 3] y [3 2 1]] (println (str x y)))
La sortie de ce code est:
13
12
11
23
22
21
33
32
31
nil
Je comprends que la liste compréhensions, et doseq comme celui-ci à la fois évalue. Existe-t-il une autre façon de faire cela, de sorte qu'au lieu de 1 élément de x utilisé pour chaque élément de y, et ainsi de suite, 1 élément de x est utilisé avec 1 élément de y et ainsi de suite, de sorte que la sortie :
13
22
31
Désolé si je ne suis pas en train de formuler ce droit, je n'arrive pas à le mettre en mots correctement.
EDIT: Je pense que vous pouvez le faire dans Haskell avec une compréhension de liste et une extension de langage. ParallelListComps ou quelque chose.