kfk*_*kfk 3 position list clojure
我有这个清单:
("a" "b" "c" "d" "e")
Run Code Online (Sandbox Code Playgroud)
我想在第一个位置移动"d":
("d" "a" "b" "c" "e")
Run Code Online (Sandbox Code Playgroud)
有没有直接的方法来做到这一点?
编辑
谢谢你的回答.我看了一下它,我这样做了:
(defn move-item [data item-to-move]
(conj (remove #(= % item-to-move) data) item-to-move))
(move-item ["a" "b" "c" "d" "e"] ["d"])
Run Code Online (Sandbox Code Playgroud)
我不确定这是不是很好的设计,但它可以解决问题.
可能有用的功能:
1.rotate
user=> (defn rotate [xs] (cons (last xs) (drop-last xs)))
#'user/rotate
user=> (rotate '(1 2 3))
(3 1 2)
Run Code Online (Sandbox Code Playgroud)
2. replace
user=> (replace {1 4} [1 2 3 4])
[4 2 3 4]
Run Code Online (Sandbox Code Playgroud)