【发布时间】:2011-05-15 13:49:23
【问题描述】:
如果我定义一个返回这样的函数的函数:
(defn add-n
[n]
(fn [x] (+ x n)))
然后我可以将结果分配给一个符号:
(def add-1 (add-n 1))
然后调用它:
(add-1 41)
;=> 42
如何调用(add-n 1) 的结果而不将其分配给新符号?以下产生此输出:
(println (add-n 1))
#<user$add_n$fn__33 user$add_n$fn__33@e9ac0f5>
nil
#<user$add_n$fn__33 user$add_n$fn__33@e9ac0f5> 是对生成函数的内部引用。
【问题讨论】:
标签: clojure higher-order-functions