我有两个序列用于比较,我需要将比较结果保存在一张地图中,第一个序列中的数据用作键,第二个用作val。这里说到的是把“相同”的事情上面成一个let绑定之后,但是工作Clojure交换!在绑定中不使用map函数
(def myAtom (atom {}))
(map #(if (== %1 %2) (swap! myAtom assoc %1 %2))
[1 2 3] [4 5 3])
(prn @myAtom) ; ==> {3 3}
示例代码,它不工作了
(let [ myAtom (atom {})]
(map #(if (== %1 %2) (swap! myAtom assoc %1 %2))
[1 2 3] [4 5 3])
(prn @myAtom)) ;;==> {} empty???
所以现在的问题是,会发生什么myAtom内让利捆绑?它是如何失踪?
如果没有 “其他” 分支你可以用'的when'代替'if'。 – mobyte 2013-03-11 09:01:15