将列表项分发到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
overfor
?for
是一个宏,而mapcat
和map
是函数,因此,在许多情况下,如函数合成等,您不能使用for
,mapcat
/map
在for
上使用什么情况?for
是一个宏,而mapcat
和map
是函数,因此,在许多情况下,如函数组合等,不能使用for