4

最近,我遇到了所谓的散列点 Common Lisp 阅读器宏,我想知道它是如何工作的以及它的作用。使用搜索引擎并没有太大帮助,因此欢迎提供任何示例、解释,尤其是用例。

4

1 回答 1

9

在规范中,这称为尖号点。它进行读取时评估。您可以搜索 Common Lisp 超规范。我手头没有,但我相信带有粘液的 Emacs 可以查找阅读器宏的文档。做C-c C-d C-h看看是否有命令。

#.foo读取为任何(eval foo)返回。因此:

CL-USER> '((+ 1 2) #.(+ 1 2))
((+ 1 2) 3)
CL-USER> (read)
#.(* 3 4)
12
于 2018-02-14T18:34:53.090 回答