我有这样的矢量:
[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”绝不应该是向量中的第一个或最后一个元素,它应该只出现在其他元素之间。
答案 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