将部分序列替换为索引处的另一个序列

时间:2016-02-27 15:13:32

标签: clojure clojurescript

是否有一种简单的方法可以在指定位置用另一个序列替换序列的一部分?

(def s1 '(1 2 3 4 5 6))
(def s2 '(:a :b :c))
(insert s1 s2 2)

; => (1 2 :a :b :c 6)

1 个答案:

答案 0 :(得分:2)

一种方法是:

(defn insert [a b idx]
  (let [h (take idx a)
        t (drop (+ idx (count b)) a)]
    (concat h b t)))