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

标签 lisp common-lisp ebnf hyperspec

为了更深入地了解 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/

相关文章:

recursion - Scheme 中的递归函数只返回列表中的第一项

lisp - Lisp 代码中长多字符串常量(或变量)的惯用方法

erlang - 如何在 LFE REPL 中显示长结果?

java - 如何通过从 Java 传递参数来运行 lisp 脚本

lisp - 函数中的 setf 不起作用

compiler-construction - ANTLR:忽略解析器中的语句

pascal - 如何理解这个 EBNF Pascal 定义

max - EBNF 最大代币

emacs - 在缓冲区中添加时间

lisp - 在 ABCL 中,如何在不终止 LISP 的情况下摆脱失控的功能?