【问题标题】:Adding an element between existing elements in vector在向量中的现有元素之间添加一个元素
【发布时间】:2016-07-20 17:38:17
【问题描述】:

我有一个这样的向量:

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

【问题讨论】:

    标签: clojure


    【解决方案1】:
    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

    【讨论】:

    • 太棒了!我不知道有一个功能可以做到这一点。 :)
    猜你喜欢
    • 2017-11-30
    • 2022-10-04
    • 2020-08-12
    • 2013-10-22
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多