0

我正在研究一个函数,它需要一个向量(可能是嵌套向量)作为输入以及一些数量 y 和索引 n。本质上,该函数将在向量中的第 n 个元素之后附加 y 并与其余元素相邻。到目前为止,我写了以下内容,但没有按计划工作:

(defn funcs [x y n]
(concat (take (- n 1) x) (concat (take-last (- (count x) n) y))))
4

1 回答 1

3

如果要返回向量作为最终值,则必须使用into(在时间上与右操作数的大小呈线性关系)或core.rrb-vector's catvec(对数时间,但生成的向量总体上会慢一些)连接向量.

至于实际实现,假设你想使用 core.rrb-vector:

(require '[clojure.core.rrb-vector :as fv])

(defn append-after-nth [x y n]
  (fv/catvec (fv/subvec x 0 n) y (fv/subvec x n)))
于 2014-01-13T16:47:41.777 回答