只需将for
替换为doseq
即可。不要使用map
,这与for
一样懒惰。
map
是foreach
的功能等价物,而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)