0

私は持っている

[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 は実際のインデックスを返さず、その値を使用して検索するため、間違った結果が返されます。

誰でも助けることができますか?

4

2 に答える 2

5

あなたはそれを行うことができますmap

(map + [1 1 1 1 1] [2 2 2 2 2])
;; => (3 3 3 3 3)
于 2013-03-09T13:32:04.147 に答える
1

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

于 2013-03-10T00:15:22.983 に答える