相关疑难解决方法(0)

为什么在CLISP中不需要#'(尖锐引用)符号?

我正在从"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,实际上很老).

lisp clisp common-lisp

5
推荐指数
2
解决办法
502
查看次数

标签 统计

clisp ×1

common-lisp ×1

lisp ×1