将列表项分发到clojure中的变量

将列表项分发到clojure中的变量,clojure,Clojure,当我传递这个函数时 (into [] (map #(+ %1 %2) [1 2] [5 6])) 我得到这个结果:[6 8] 在保留此#(++%1%2)的同时,我应该如何获得此:[6 7 7 8] 在这种情况下,map似乎不是正确的功能。如果需要笛卡尔积,请使用for: user=> (for [x [1 2] y [5 6]] #_=> (+ x y)) (6 7 7 8) 当您想要笛卡尔乘积时,请使用for:

当我传递这个函数时

(into [] 
      (map #(+ %1 %2)
           [1 2]
           [5 6]))
我得到这个结果:
[6 8]

在保留此
#(++%1%2)
的同时,我应该如何获得此:
[6 7 7 8]


在这种情况下,
map
似乎不是正确的功能。

如果需要笛卡尔积,请使用
for

user=> (for [x [1 2] y [5 6]]
  #_=>   (+ x y))
(6 7 7 8)

当您想要笛卡尔乘积时,请使用
for

user=> (for [x [1 2] y [5 6]]
  #_=>   (+ x y))
(6 7 7 8)

如Alex answer所示,
for
是一个选项<代码>地图也可以使用(与
地图猫
一起使用),如下所示:

user=> (mapcat #(map (partial + %1) [5 6]) [1 2])
(6 7 7 8)

如Alex answer所示,
for
是一个选项<代码>地图也可以使用(与
地图猫
一起使用),如下所示:

user=> (mapcat #(map (partial + %1) [5 6]) [1 2])
(6 7 7 8)

在什么情况下,您会使用
mapcat
/
map
over
for
for
是一个宏,而
mapcat
map
是函数,因此,在许多情况下,如函数合成等,您不能使用
for
mapcat
/
map
for
上使用什么情况?
for
是一个宏,而
mapcat
map
是函数,因此,在许多情况下,如函数组合等,不能使用
for