为了更深入地了解 Common Lisp 的工具,我发现自己在阅读文档时遇到了困难。也就是说,很难理解所讨论的宏的用法是什么样的。
例如,考虑 this :
do ({var | (var [init-form [step-form]])}*) (end-test-form result-form*) 声明* {tag |语句}*
如何解释括号?圆括号 ()
是否对应于 Lisp 列表?什么是竖条?大括号?星号?
我基本上可以阅读 Unix 手册页并很好地理解它们的语法;然而,这里似乎发生了一些完全不同的事情。
最佳答案
这是对我的评论的扩展,我认为它可以作为答案。
首先请记住,CLHS 是一个规范:它通常不是很好的介绍 Material ,尽管当然有很多人从中学习了 CL。一些符号在规范的纸质(或 PDF)版本中也更容易阅读:尽管转换为 HTML 非常好(并且在当时是英雄)它并不总是完全正确:如果你可以获得纸质副本在某些情况下更好。
也就是说:section 1.4.1有符号约定,并且section 1.4.1.2专门处理规范中使用的 BNF 变体。
关于lisp - 阅读和理解 Common Lisp (HyperSpec) 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47911645/