Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
最近,我遇到了所谓的散列点 Common Lisp 阅读器宏,我想知道它是如何工作的以及它的作用。使用搜索引擎并没有太大帮助,因此欢迎提供任何示例、解释,尤其是用例。
在规范中,这称为尖号点。它进行读取时评估。您可以搜索 Common Lisp 超规范。我手头没有,但我相信带有粘液的 Emacs 可以查找阅读器宏的文档。做C-c C-d C-h看看是否有命令。
C-c C-d C-h
#.foo读取为任何(eval foo)返回。因此:
#.foo
(eval foo)
CL-USER> '((+ 1 2) #.(+ 1 2)) ((+ 1 2) 3) CL-USER> (read) #.(* 3 4) 12