Doseq每y计算1 x.有没有什么方法可以让它在1年内评估1 x等等在Clojure中?

Ray*_*yne 3 clojure

我不太确定如何说出这个帖子的名字,所以如果你能澄清它,请这样做.

我的示例代码是这样的:

(doseq [x [1 2 3] y [3 2 1]] (println (str x y)))
Run Code Online (Sandbox Code Playgroud)

该代码的输出是:


13
12
11
23
22
21
33
32
31
nil
Run Code Online (Sandbox Code Playgroud)

我理解列表理解和doseq都是这样评价的.有没有另一种方法可以做到这一点,所以不是x的1个元素用于y的每个元素,依此类推,x的1个元素与y的1个元素一起使用,依此类推,因此输出将是:


13
22
31
Run Code Online (Sandbox Code Playgroud)

对不起,如果我没有说明这一点,我似乎无法正确地说出来.

编辑:我认为你可以在Haskell中使用列表推导和语言扩展来做到这一点.ParallelListComps之类的东西.

Jon*_*nas 11

你可以干脆做

(doseq [[x y] (map vector [1 2 3] [3 2 1])] 
  (println (str x y)))
Run Code Online (Sandbox Code Playgroud)