如何使用clojure交换输入序列中的相邻元素。 [10 15 20 25] ---> [15 10 25 20] [:q:e:g:t:p] ---> [:e:q:t:g:p]
这是我的操作方式,但是可以肯定,还有更好的方法!
(defn switch [s]
(loop [[a b & rest] s
result []]
(if (empty? rest)
(cond
;;empty sequence
(empty? s) result
;;odd sequence
(nil? b) (conj result a)
;;even sequence
:else (conj result b a)
)
(recur rest (conj result b a))))
)
答案 0 :(得分:2)
CONVERT