我有
[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 不返回其实际索引,而是使用其值搜索它。
任何人都可以帮忙吗?
我有
[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 不返回其实际索引,而是使用其值搜索它。
任何人都可以帮忙吗?
你可以这样做map
:
(map + [1 1 1 1 1] [2 2 2 2 2])
;; => (3 3 3 3 3)
如果您使用core.matrix
( link ),则可以扩展运算符以处理数字向量,您可以这样做:
(use 'clojure.core.matrix.operators)
(+ [1 1 1 1 1] [2 2 2 2 2])
=> [3 3 3 3 3]
一般来说,core.matrix
如果您要在 Clojure 中使用向量/矩阵/多维数组进行大量工作,您应该考虑一下。