如何在Clojure中将两个seq中相同索引的元素添加到一起
我有 及 我想要如何在Clojure中将两个seq中相同索引的元素添加到一起,clojure,Clojure,我有 及 我想要 [2 2 2 2 2] 我试过了 [3 3 3 3 3] 它给出了错误的结果,因为.indexOf不返回其实际索引,而是使用其值进行搜索 有人能帮忙吗?你可以用map: (for [x s1 y s2 :when (= (.indexOf s1 x) (.indexOf s2 y))] (+ x y)) 您可以使用map: (for [x s1 y s2 :when (= (.indexOf s1 x) (.index
[2 2 2 2 2]
我试过了
[3 3 3 3 3]
它给出了错误的结果,因为.indexOf不返回其实际索引,而是使用其值进行搜索
有人能帮忙吗?你可以用
map
:
(for [x s1
y s2
:when (= (.indexOf s1 x) (.indexOf s2 y))]
(+ x y))
您可以使用
map
:
(for [x s1
y s2
:when (= (.indexOf s1 x) (.indexOf s2 y))]
(+ x y))
如果使用
core.matrix
(),则可以扩展运算符以处理数字向量,您只需执行以下操作:
(map + [1 1 1 1 1] [2 2 2 2 2])
;; => (3 3 3 3 3)
一般来说,如果要在Clojure中使用向量/矩阵/多维数组进行大量工作,则应使用
core.matrix
。如果使用core.matrix
(),则可以将运算符扩展为使用数字向量,您只需执行以下操作:
(map + [1 1 1 1 1] [2 2 2 2 2])
;; => (3 3 3 3 3)
一般来说,如果您要在Clojure中使用向量/矩阵/多维数组进行大量工作,您应该查看core.matrix