在Common Lisp中,它似乎()是一种自我评估的形式.也就是说,它评估自身(或其别名nil).所以似乎没有必要引用它.但是在我的quicklisp目录中使用grep可以找到'()很多不同人在许多不同项目中编写的实例.写出引用版本有技术原因吗? Common Lisp the Lanugage,2nd Edition,Section 1.2.2,提到了你可能想要强调空列表的样式差异(),以及布尔值假nil,但不包括这个问题.Steele使用的一个例子是:
(append '() '())
Run Code Online (Sandbox Code Playgroud)
...我认为可以写得和以下一样:
(append () ())
Run Code Online (Sandbox Code Playgroud)
...那么为什么要把额外的东西QUOTEs放在那里?当然它不会伤害事物.在风格上,一种形式通常优先于另一种形式?有人可以肯定地说,引用表单使得添加元素变得更简单,以防你改变主意,并且真的想要一个非空的文字列表.或者使用引号存在一定的对称性,因为非空的文字列表也需要它.
这些历史包袱是否与传统上传承的其他/较旧的相关语言有关?
这与Scheme不同,您需要引用它.而且似乎你不必在elisp中引用它,所以也许它可能与lisp-1和lisp-2有关.
我这里有一个令人尴尬的简单问题.我是一个小小的新手(我试图每5年左右尝试一次),而且我已经运行了Pharo 6.1.我如何寻找官方标准库文档?特别是对于编译器类?比如编译和评估方法?我没有看到如何使用帮助浏览器执行搜索,并且编译器类中的方法注释相当简洁和神秘.我也没有看到标准库API文档的明显链接:http://pharo.org/documentation.书中的"Pharo by Example"和"Deep into Pharo"似乎也没有涵盖那个类.我想这个类可能与Squeak和其他小元素类似,因此编译器类的文档链接也可能有用.
谢谢!