【发布时间】:2014-04-04 15:31:27
【问题描述】:
以下面的函数为例:
(defn f [x y] (+ x y))
我想用这个函数给向量的每个元素加2:
[1 2 6 3 6]
我可以使用地图:
(map f [1 2 6 3 6] [2 2 2 2 2])
但是创建每个元素完全相同的第二个向量似乎有点难看。
所以我认为使用闭包是一种更好的方法:
(map (fn g [x] (f x 2)) [1 2 6 3 6])
所以我的问题是:
在 clojure 中,当某些参数不变时使用 map 的最佳方式是什么?
【问题讨论】:
-
使用
mapv而不是map,你会得到另一个向量。map的懒惰在这里买不到任何东西。
标签: clojure