我lein new app test-println用来创建一个clojure应用程序并启动repl lein repl,然后我输入(map println [1 2 3 4 5 6])并获得预期的结果:
test-println.core=> (map println [1 2 3 4 5 6])
1
2
3
4
5
6
(nil nil nil nil nil nil)
但是,如果我添加(map println [1 2 3 4 5 6])到结尾src/test_println/core.clj:
(ns test-println.core
(:gen-class))
(defn -main
"I don't do a whole lot ... yet."
[& args]
(println "Hello, World!")
(map println [1 2 3 4 5 6]))
Run Code Online (Sandbox Code Playgroud)
lean run仅打印Hello, World!.
如果您的目标是对单个集合中的每个项目运行单个过程,则应使用run!:
(run! println [1 2 3 4 5 6])
;; 1
;; 2
;; 3
;; 4
;; 5
;; 6
;;=> nil
Run Code Online (Sandbox Code Playgroud)
如果您需要对每个集合执行的操作比仅应用现有函数更复杂,doseq可能更方便,但run!这里是更好的选择.