2

我有这个函数,它将一组函数作为参数:

(defn- main-func
  [fn-list]
...)

我通常这样称呼它:

(main-func [f1 f2 ...])

但是f1andf2都是无参数函数。如何在此调用中包含带参数的函数?我搜索了谷歌,但没有成功。谢谢

4

2 回答 2

5

带参数的函数,例如

(defn foo [w x y z] ...)

可以由包含参数的匿名函数包装,例如

#(foo 1 2 3 4)
于 2013-07-01T17:09:32.353 回答
4

除了 A. Webb 建议的 anon 函数外,您还可以使用函数partial,它给定一个 fn,创建另一个 fn 并设置一些参数。如果您指定所有参数,它将返回一个您可以不带参数调用的 fn:

 (def plus-12 (partial + 1 2))
 (plus-12) => 3
 (plus-12 3) => 6
于 2013-07-01T17:15:27.847 回答