Doseq每y计算1 x。有没有什么方法可以让它在1年内评估1 x等等在Clojure中?
-
06-07-2019 - |
题
我不确定如何说出这个帖子的名称,所以如果你能澄清它,请这样做。
我的示例代码是:
(doseq [x [1 2 3] y [3 2 1]] (println (str x y)))
该代码的输出是:
13
12
11
23
22
21
33
32
31
nil
我理解列表理解,而doseq都是这样评价的。有没有另一种方法可以做到这一点,所以不是x的1个元素被用于y的每个元素,依此类推,x的1个元素与y的1个元素一起使用,依此类推,因此输出将是:
13
22
31
对不起,如果我没有说明这一点,我似乎无法用正确的方式说出来。
编辑:我认为您可以在Haskell中使用列表推导和语言扩展来完成此操作。 ParallelListComps等等。解决方案
你可以简单地做
(doseq [[x y] (map vector [1 2 3] [3 2 1])]
(println (str x y)))
其他提示
(partition 2
(interleave [1 2 3] [3 2 1]))
interleave
从给定序列中产生一系列交替元素, partition
将此序列分组为 n
元素的序列。
这更令人沮丧:
(doall (map println [1 2 3] [3 2 1]))
不隶属于 StackOverflow