gpt4 book ai didi

vector - Clojure:增加列表中每个向量的第一个元素

转载 作者:行者123 更新时间:2023-12-05 08:18:04 25 4
gpt4 key购买 nike

我有一个这样的向量列表:

([4 0] [4 2] [2 1] [4 1])

如何将每个向量的第一个元素递增一个特定值 X?

期望的输出:

([5 0] [5 2] [3 1] [5 1])

这是我目前的方法,但我认为我可以更简单:

(defn shiftVector [oldVector number]
(map vector
(map #(+ (first %) number) oldVector )
(map #(second %) oldVector))
)

最佳答案

由于向量在它们的索引上是关联的,所以最简单的方法可能是:

(defn shift-vector [v n]
(map #(update % 0 + n) v))

(shift-vector [[4 0] [4 2] [2 1] [4 1]] 1)
;=> ([5 0] [5 2] [3 1] [5 1])

这适用于列表中的任何长度向量(空向量除外,但无论如何你都不能增加它们)。

关于vector - Clojure:增加列表中每个向量的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66497082/

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