欢迎!请参阅关于页面以获取更多关于工作方式的信息。
Clojure核心语言很小。更复杂的语法通常通过宏扩展到几个核心特殊形式来实现。其中一个特殊符号是def,用于在当前命名空间中内联Vars。然而,也存在intern,它几乎完成相同的任务(除了ns的选择),并且只是通过一个函数和一些互操作来实现的。
def
Vars
intern
def为什么值得成为一个特殊形式?是否存在def可以实现的用例,而这些用例无法通过intern和一些额外的互操作或宏来完成?
defmacro扩展为defn,而defn扩展为def。那么如果def不是一个特殊形式将会怎样?有些东西必须为引导过程而众所周知。
defmacro
defn