2

ベクトル全体のrepl追加では、期待どおりに機能します

> (map + [1 2 3] [1 2 3])
(2 4 6)

しかし、私が持っているのはベクトルのベクトルであり、試してみると

> (apply #(map + %) [[1 2 3] [1 2 3]])
ArityException Wrong number of args (2) passed to: user$eval14$fn clojure.lang.AFn.throwArity (AFn.java:437)

ベクトルのベクトルに対応する数値を追加するにはどうすればよいですか?

4

2 に答える 2

6

これは、最初の例からの1つのステップです。

user> (apply map + [[1 2 3] [1 2 3]])
(2 4 6)
于 2012-05-10T11:41:41.787 に答える
0

リーダー マクロ アプローチは、次の場合に使用できます。

(user=> (apply #(map + % %2) [[1 2 3] [1 2 3]])
(2 4 6)

ベクトルに含まれるベクトルの数を把握し、各引数を指定する必要があります。「適用」アプローチがうまくいく場合は、次のように、より柔軟になります。

user=> (apply map + [[1 2 3] [1 2 3] [1 2 3]])
(3 6 9)
于 2012-05-11T15:48:42.513 に答える