通过合并Clojure中的列表来进行随机播放

1 clojure

如何编写一个函数来拆分列表然后将它合并回来,以便结果列表代表一个套牌的洗牌?

该列表(1 2 3 4 5 6 7 8 9 10)最终应该是(1 6 2 7 3 8 4 9 5 10)

有没有办法使用split-atreduce其他功能来实现这一目标?

到目前为止我在这里:

(defn shuffle [cards] 
  (split-at (/ (count cards) 2) cards)
)
Run Code Online (Sandbox Code Playgroud)

grd*_*vnl 6

(apply interleave (split-at 5 (range 1 11)))
Run Code Online (Sandbox Code Playgroud)

(1 6 2 7 3 8 4 9 5 10)