【发布时间】:2012-07-27 19:48:21
【问题描述】:
我正在关注“Clojure in Action”,对此我感到困惑:
(defn with-log [function-to-call log-statement ]
(fn [& args]
(println log-statement)
(apply function-to-call args)))
这是让我感到困惑的代码段。这是我目前能破译的:
(defn with-log [function-to-call log-statement ] ..) 定义了一个名为“with-log”的函数,它接受参数“function-to-call”和“log-statement”以及函数-to-call 是作为参数传递给该函数的函数。 下一部分让我感到困惑:(fn [& args] .... 这里定义了一个匿名函数吗?'with-log' 函数是否返回一个新的函数定义?
(fn [& args]
(println log-statement)
(apply function-to-call args))
所以通过调用 (with-log somefunc "my label") - 它只是返回一个新的匿名函数吗?还是调用匿名函数?
【问题讨论】:
标签: clojure functional-programming higher-order-functions