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

7

为了更深入地了解Common Lisp的工具,我在阅读文档时遇到了困难。特别是,在理解所涉及宏的用法时很难理解。

例如,考虑这个

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

如何解释括号?圆括号()是否对应于Lisp列表?竖线是什么?花括号?星号?

我可以大多数情况下读Unix手册并且非常熟悉它们的语法;但是,在这里似乎发生了完全不同的事情。


5
你读过1.4.1和特别是1.4.1.2吗? - user5920214
错过了。谢谢! - MadPhysicist
ENBF - Rainer Joswig
1个回答

12

这是我评论的扩展,我认为它可以作为答案。

首先要记住的是,CLHS 是一份规范:它通常不是非常好的入门材料,尽管当然有许多人从中学习了 CL。其中一些符号在规范的纸质版(或 PDF 版本)中阅读起来也更容易:虽然转换成 HTML 的过程相当不错(并且当时是英勇的),但并不总是完全正确的:如果您可以获得纸质副本,在某些情况下它会更好。

话虽如此:第 1.4.1 节 具有符号约定,而 第 1.4.1.2 节 具体涉及规范中使用的 BNF 变体。


1
谢谢你教我BNF!我知道我漏了什么! :) - MadPhysicist
这个参考资料对于新手学习者很有帮助:http://jtra.cz/stuff/lisp/sclr/index.html - Justin Meiners

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接