【发布时间】:2011-08-09 08:00:15
【问题描述】:
我在这个 Clojure 教程中阅读了以下行 - http://java.ociweb.com/mark/clojure/article.html#Macros
'由于宏不评估其参数,因此可以将不带引号的函数名称传递给它们,并且可以构造对带参数的函数的调用。函数定义不能做到这一点,而是必须传递匿名函数来包装对函数的调用。
如果它是正确的,那么为什么这会起作用,因为函数立方体不是匿名的-
(defn something [fn x]
(fn x))
(defn cube [x]
(* x x x))
(something cube 4)
【问题讨论】:
-
您将函数
cube传递给something,而不仅仅是其名称。