【发布时间】:2017-08-22 10:29:09
【问题描述】:
我如何结合两个列表说'(1 2 3 4)和'(:a :b :c :d)来获得
(1 :a 2 :b 3 :c 4 :d)
因为我不能只做concat,因为那样会将第二个列表添加到第一个列表的末尾。
我想过做类似的事情
user=> (def a '(1 2 3 4))
user=> (def b '(:a :b :c :d))
user=> (def x (apply conj (second (split-at 1 a)) (nth b 0) (reverse (first (split-at 1 a)))))
(1 :a 2 3 4)
user=> (def y (apply conj (second (split-at 3 x)) (nth b 1) (reverse (first (split-at 3 x)))))
(1 :a 2 :b 3 4)
user=> (def z (apply conj (second (split-at 5 y)) (nth b 2) (reverse (first (split-at 5 y)))))
(1 :a 2 :b 3 :c 4)
user=> (def q (apply conj (second (split-at 7 z)) (nth b 3) (reverse (first (split-at 7 z)))))
(1 :a 2 :b 3 :c 4 :d)
但我认为有更好的方法
任何帮助将不胜感激
【问题讨论】:
标签: clojure