我有
[1 1 1 1 1]
和
[2 2 2 2 2]
我想要
[3 3 3 3 3]
我试过
(for [x s1
y s2
:when (= (.indexOf s1 x) (.indexOf s2 y))]
(+ x y))
它给出错误的结果,因为.indexOf不返回其acctual索引,而是使用其值搜索它。
任何人都可以提供帮助吗?
答案 0 :(得分:5)
您可以使用map
:
(map + [1 1 1 1 1] [2 2 2 2 2])
;; => (3 3 3 3 3)
答案 1 :(得分:1)
如果您使用core.matrix
(link),则可以将运算符扩展为使用数字向量,您可以这样做:
(use 'clojure.core.matrix.operators)
(+ [1 1 1 1 1] [2 2 2 2 2])
=> [3 3 3 3 3]
一般来说,如果要在Clojure中使用矢量/矩阵/多维数组做很多工作,你应该看core.matrix
。