在REPL中执行以下命令
(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 *的宏,特殊符号和特殊形式之间是否存在关系?
问候,
答案 0 :(得分:1)
"特殊表格"是从编译器接收特殊处理的那些。这些正是具有“特殊符号”的形式。在操作员的位置。
let
在文档中被描述为一种特殊形式,因为let*
被认为是一个实现细节,我们鼓励用户将let
视为一个基本构建块。语言。至少这是我的理解。
(注意:其他Lispy语言的用户可能会对这两个术语有不同的含义。这种用法是在Clojure社区中建立的。)