我有一个像这样的向量列表:
([4 0] [4 2] [2 1] [4 1])
Run Code Online (Sandbox Code Playgroud)
如何将每个向量的第一个元素增加某个值 X ?
所需的输出:
([5 0] [5 2] [3 1] [5 1])
Run Code Online (Sandbox Code Playgroud)
这是我目前的方法,但我认为我可以简单得多:
(defn shiftVector [oldVector number]
(map vector
(map #(+ (first %) number) oldVector )
(map #(second %) oldVector))
)
Run Code Online (Sandbox Code Playgroud)
Sea*_*eld 13
由于向量与其索引相关联,因此最简单的方法可能是:
(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])
Run Code Online (Sandbox Code Playgroud)
这适用于列表中的任何长度向量(空向量除外,但无论如何您都无法增加它们)。
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |