Почему это не дает ожидаемого результата?
(defn test-fn [] (do (println "start") (map #(println (+ % 1)) '(1 2 3)) (println "done")))
Он выводит
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")))