gpt4 book ai didi

clojure - Doseq 对每个 y 评估 1 x。有什么方法可以让它在 Clojure 中评估 1 x for 1 y 等等?

转载 作者:行者123 更新时间:2023-12-02 10:43:21 24 4
gpt4 key购买 nike

我不太确定如何表达该主题的名称,因此如果您可以澄清,请这样做。

我的示例代码是这样的:

(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)))

关于clojure - Doseq 对每个 y 评估 1 x。有什么方法可以让它在 Clojure 中评估 1 x for 1 y 等等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1216668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com