gpt4 book ai didi

clojure - 按索引组合向量

转载 作者:行者123 更新时间:2023-12-01 17:44:55 25 4
gpt4 key购买 nike

我正在编写一个函数,输入两个长度为 n 的向量,

即[:a:b:c:d:e:f] [1 2 3 4 5 6]。输出一个长度为2n的向量

[:a 1 :b 2 :c 3 :d 4 :e 5 :f 6]。

但是,如果输入的第二个向量与 n 的长度不匹配,它将循环,

即[:a:b:c:d:e:f] [1 2 3]

输出:[:a 1 :b 2 :c 3 :d 1 :e 2 :f 3]。

 (defn Swanson [x y] (vec (flatten (interleave x (repeat (count x) y)))))

此外,该函数还可以取[x y min max n],其中x和y是向量,min是开始交织的索引,max是结束交织的索引,n是步长交错。

最佳答案

您想要循环:

user> (take 6 (cycle [1 2 3]))
(1 2 3 1 2 3)

user> (interleave [:a :b :c :d :e :f] (cycle [1 2 3]))
(:a 1 :b 2 :c 3 :d 1 :e 2 :f 3)

关于clojure - 按索引组合向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20080555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com