阅读和理解Common Lisp(HyperSpec)文档

时间:2017-12-20 17:43:36

标签: lisp common-lisp ebnf hyperspec

在尝试更深入地熟悉Common Lisp的工具时,我发现自己在阅读文档时感到很挣扎。即,难以理解所讨论的宏的用途将是什么样的。

例如,考虑this

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

如何解释括号?圆括号()是否对应Lisp列表?什么是垂直条?大括号?星号?

我几乎可以阅读Unix手册页并很好地理解它们的语法;然而,这里似乎发生了一些完全不同的事情。

1 个答案:

答案 0 :(得分:9)

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

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

话虽如此:section 1.4.1有符号约定,section 1.4.1.2专门处理规范中使用的BNF变体。

相关问题