我试图在Clojure中迭代一行"行".基本上,它看起来像:
[{:start {:x 1 :y 3 :z 4}, :end {:x 3 :y 7 :z 0}}, ...]
Run Code Online (Sandbox Code Playgroud)
我想应用一个函数,将每个"行"打印到一个新行,ala:
(map #(println %) vector-of-lines)
Run Code Online (Sandbox Code Playgroud)
但这似乎没有调用该函数.我不应该在这个例子中使用"map"功能吗?
我有两个代码片段,我认为这两个代码片段都会产生警报.但是,第一个结果为none,而第二个执行警报.
(map #(.alert js/window %) ["hey1" "hey2"])
Run Code Online (Sandbox Code Playgroud)
这个轻微的修改按预期打印(零nil),以及修复警报问题.问题是为什么?
(print (map #(.alert js/window %) ["hey1" "hey2"]))
Run Code Online (Sandbox Code Playgroud)
另一个奇怪的观察是,第一个代码片段来自浏览器 - repl,但不是在键入代码时.
地图功能副作用是免费的,但打印不是吗?也许我不知道一些核心代码优化?
解决方法和答案都很受欢迎.如果您需要更多信息,请在评论中告诉我.
[org.clojure/clojurescript"1.8.51"]
BOOT_CLOJURE_VERSION = 1.7.0
BOOT_VERSION = 2.5.5
java版"1.8.0_101"
说明:Ubuntu 14.04.4 LTS