阅读和理解常见的LISP(HYPERSPEC)文档



在试图收集对Common Lisp工具的更深入的熟悉时,我发现自己在阅读文档时正在挣扎。也就是说,很难理解有关宏的用法。

例如,请考虑以下内容:

do ({var | (var [init-form [step-form]])}*) (end-test-form result-form*) declaration* {tag | statement}*

一个人如何解释括号?圆形括号()是否对应于LISP列表?什么是垂直条?大括号?星号?

我大多可以阅读Unix Manpages并很好地理解他们的语法;但是,似乎这里发生了完全不同的事情。

这是我的评论的扩展,我认为这是一个答案。

首先,请记住,CLHS是一个规范:尽管许多人从中学到了CL,但它通常不是很好的介绍材料。某些符号也更容易在规格的纸张(或PDF)版本中阅读:尽管转换为HTML非常好(当时是英勇的),但这并不总是完全正确的:如果您可以获取纸质副本在某些情况下是更好的。

说:第1.4.1节具有符号惯例,第1.4.1.2节专门讨论了规格中使用的BNF变体。

最新更新