如何部分联合?

时间:2014-05-10 21:39:29

标签: clojure currying partial-application

我正在尝试创建一个将多个进程应用于地图的函数,包括使用“conj”向每个地图添加/更新一些标准项目。我是通过使用“comp”编写其他几个函数来实现的。

所以我试着这样做

(defn everything [extra] (comp (partial conj {:data extra}) another-func) )

哪个不起作用,因为conj想要额外的数据作为第二个参数,而不是第一个。

我认为应该有一种类似直截了当的方式来组成一个curried conj,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:3)

最简单的就是写一个匿名函数:

(defn everything [extra]
  (comp #(conj % {:data extra}) another-func))