我有兩個序列用於比較,我需要將比較結果保存在一張地圖中,第一個序列中的數據用作鍵,第二個用作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