我正在从"Practical Common Lisp"一书中学习Lisp.有一次,我应该输入以下代码:
[1] (remove-if-not #'evenp '(1 2 3 4 5 6 7 8 9 10))
(2 4 6 8 10)
Run Code Online (Sandbox Code Playgroud)
我想这里的想法当然是remove-if-not想要一个在向它提供参数时可以返回T或NIL的函数,然后将该函数应用于列表中的所有符号,返回仅包含列表的列表那些返回NIL的符号.
但是,如果我现在在CLISP中编写以下代码:
[2] (remove-if-not 'evenp '(1 2 3 4 5 6 7 8 9 10)
(2 4 6 8 10)
Run Code Online (Sandbox Code Playgroud)
它仍然有效!所以我的问题是,是否使用尖引号表示法,或仅仅使用引用是否足够?现在看起来额外的锐利只是让程序员知道"嘿,这是一个功能,而不仅仅是一些随机的符号!" - 但如果它有任何其他用途,我很想知道它.
我使用的是GNU CLISP 2.49(2010-07-07,sheesh,实际上很老).