在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)
如何在向量的向量中添加相应的数字?
答案 0 :(得分:6)
这只是你的第一个例子的一步:
user> (apply map + [[1 2 3] [1 2 3]])
(2 4 6)
答案 1 :(得分:0)
读者宏方法可以使用:
(user=> (apply #(map + % %2) [[1 2 3] [1 2 3]])
(2 4 6)
它要求您知道向量中有多少向量,并指定每个arg。如果“应用”方法适合您,那么它将更加灵活,例如:
user=> (apply map + [[1 2 3] [1 2 3] [1 2 3]])
(3 6 9)