私は持っている
[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 でベクトル/行列/多次元配列を使用して多くの作業を行う場合は、 を探す必要があります。