gpt4 book ai didi

clojure - Clojure中doseq和for的区别

转载 作者:行者123 更新时间:2023-12-03 00:58:42 25 4
gpt4 key购买 nike

Clojure 中的doseq 和for 有什么区别?您何时会选择使用其中一种而不是另一种,有哪些示例?

最佳答案

不同之处在于,for 构建一个惰性序列并返回它,而 doseq 用于执行副作用并返回 nil。

user=> (for [x [1 2 3]] (+ x 5))
(6 7 8)
user=> (doseq [x [1 2 3]] (+ x 5))
nil
user=> (doseq [x [1 2 3]] (println x))
1
2
3
nil

如果要基于其他序列构建新序列,请使用 for。如果您想根据某些序列中的元素执行副作用(打印、写入数据库、发射核弹头等),请使用doseq。

关于clojure - Clojure中doseq和for的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4725417/

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