gpt4 book ai didi

clojure - 附加到函数中的向量

转载 作者:行者123 更新时间:2023-12-02 18:34:46 25 4
gpt4 key购买 nike

我有两列不同长度的列(向量),想要创建一个新的行向量(如果该列有足够的元素)。我正在尝试创建一个新向量(请参阅下面的失败尝试)。在 Java 中,这将涉及以下步骤:迭代向量、检查条件、追加到向量、返回向量。这里需要递归吗?我确信这并不难解决,但它与过程代码有很大不同。

(defn rowmaker [colA colB]
"create a row of two columns of possibly different length"
(let [mia (map-indexed vector colA)
rows []]
(doseq [[i elA] mia]
;append if col has enough elements
(if (< i (count colA)) (vec (concat rows elA))) ; ! can't append to rows
(if (< i (count colB)) (vec (concat rows (nth colB i)))
;return rows
rows)))

预期的示例输入/输出

(rowMaker ["A1"] ["B1" "B2"])
; => [["A1" "B1“] [“" "B2"]]

最佳答案

(defn rowMaker [colA colB]
"create a row from two columns"
(let [ca (count colA) cb (count colB)
c (max ca cb)
colA (concat colA (repeat (- c ca) ""))
colB (concat colB (repeat (- c cb) ""))]
(map vector colA colB)))

关于clojure - 附加到函数中的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29999316/

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