【发布时间】:2018-02-14 18:09:06
【问题描述】:
最近,我遇到了所谓的哈希点 Common Lisp 阅读器宏,我想知道它是如何工作的以及它的作用。使用搜索引擎并没有太大帮助,因此欢迎提供任何示例、解释,尤其是用例。
【问题讨论】:
最近,我遇到了所谓的哈希点 Common Lisp 阅读器宏,我想知道它是如何工作的以及它的作用。使用搜索引擎并没有太大帮助,因此欢迎提供任何示例、解释,尤其是用例。
【问题讨论】:
在规范中,这称为尖号点。它进行读取时评估。您可以搜索 Common Lisp 超规范。我手头没有,但我相信带有 slime 的 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
【讨论】: