15
有更好或更簡潔的方式來執行以下操作嗎?什麼是交換向量中的兩個元素的慣用方式
(defn swap [v i1 i2]
"swap two positions in a vector"
(let [e1 (v i1)
e2 (v i2)]
(-> (assoc v i1 e2)
(assoc i2 e1))))
有更好或更簡潔的方式來執行以下操作嗎?什麼是交換向量中的兩個元素的慣用方式
(defn swap [v i1 i2]
"swap two positions in a vector"
(let [e1 (v i1)
e2 (v i2)]
(-> (assoc v i1 e2)
(assoc i2 e1))))
我想不出一個特別優雅的解決方案。以下是我如何寫它:
(defn swap [v i1 i2]
(assoc v i2 (v i1) i1 (v i2)))
我喜歡你執行更好。 – 2011-05-12 15:22:36