Clojure 特殊表格是否仅使用特殊符号?
在REPL中执行以下命令Clojure 特殊表格是否仅使用特殊符号?,clojure,Clojure,在REPL中执行以下命令 (symbol-special? 'do) ;=> true (type 'do) ;=> Symbol (doc do) ;=>.. it is a Special form... 同样的事情也发生在let身上 (symbol-special? 'let) ;=> FALSE (type 'let) ;=> Symbol
(symbol-special? 'do) ;=> true
(type 'do) ;=> Symbol
(doc do) ;=>.. it is a Special form...
同样的事情也发生在let身上
(symbol-special? 'let) ;=> FALSE
(type 'let) ;=> Symbol
(doc let) ;=>.. it is a Special form...
我知道let是一个使用特殊符号let*的宏,特殊符号和特殊形式之间有关系吗
在这方面,“特殊表单”是指那些接受编译器特殊处理的表单。这些正是在操作员位置上具有“特殊符号”的形式
let
在文档中被描述为一种特殊形式,因为let*
被视为一种实现细节,鼓励用户将let
视为该语言的基本构建块。至少这是我的理解
(注意,其他Lispy语言的用户可能会对这两个术语赋予不同的含义。这种用法是在Clojure社区建立起来的。)为了补充Michal的答案,我想补充一点,一些符号并不被认为是特殊的,但其行为类似于宏:任何以句点开始或结束的符号。