为什么这不能产生我期望的结果?
(defn test-fn [] (do (println "start") (map #(println (+ % 1)) '(1 2 3)) (println "done")))
It输出
start done
而我希望
start 2 3 4 done
map 他很懒,而且 do 不强迫它。如果要强制对延迟序列求值,请使用 doall dorun .
map
do
doall
dorun
(defn test-fn [] (do (println "start") (dorun (map #(println (+ % 1)) '(1 2 3))) (println "done")))