Как поменять местами соседние элементы во входной последовательности, используя 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))))
)