如何在clojure中实现foreach循环?

时间:2011-03-12 22:07:53

标签: clojure

在clojure中实现for循环似乎很容易,但是如何实现一个foreach语句来读取列表中的每个元素(向量)并执行某些操作?

像这样......

(foreach i list expression)

提前致谢!

2 个答案:

答案 0 :(得分:31)

只需将for替换为doseq即可。不要使用map,这与for一样懒惰。

答案 1 :(得分:0)

mapforeach的功能等价物,而doseq是带有副作用的命令式编程。

map接受函数f和seqable集合coll,并返回将f应用于集合中每个元素的延迟评估结果。

实施例

(map inc [1 2 3 4])
=> (2 3 4 5)

(map (fn [x] (* x 2)) [1 2 3 4])
=> (2 4 6 8)

(map dec (take 5 (range)))
=> (-1 0 1 2 3)