在向量中的现有元素之间添加元素

时间:2016-07-20 17:38:17

标签: clojure

我有这样的矢量:

[1 2 "b" 4 5 6 "c" 8 9 10]

我想在每个元素之间添加字母“a”,以便最终结果如下所示:

[1 "a" 2 "a" "b" "a" 4 "a" 5 "a" 6 "a" "c" "a" 9 "a" 10]

在Clojure中执行此操作的最佳方法是什么?

请注意,字母“a”绝不应该是向量中的第一个或最后一个元素,它应该只出现在其他元素之间。

1 个答案:

答案 0 :(得分:8)

user> (interpose "a" input)
(1 "a" 2 "a" "b" "a" 4 "a" 5 "a" 6 "a" "c" "a" 8 "a" 9 "a" 10)

或者如果输出必须是矢量,那么

user> (vec (interpose "a" input))
[1 "a" 2 "a" "b" "a" 4 "a" 5 "a" 6 "a" "c" "a" 8 "a" 9 "a" 10]

以下是interpose的文档:https://clojuredocs.org/clojure.core/interpose