2017-12-20 31 views
4

Common Lispのツールをより深く理解するために、ドキュメントを読む際に苦労していました。つまり、問題のマクロの使用方法を理解することは困難です。Common Lisp(HyperSpec)のドキュメントを読んで理解する

たとえば、this考える:

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

どのように括弧を解釈していますか?丸括弧()はLispリストに対応していますか?垂直バーとは何ですか?中括弧?アスタリスク?

私は主にUnixのマニュアルページを読み、その構文をよく理解することができます。しかし、ここではまったく異なる何かが起こっているようです。

+4

[1.4.1](http://www.lispworks.com/documentation/HyperSpec/Body/01_da.htm)と特に[1.4.1.2](http://www.lispworks.com/ documentation/HyperSpec/Body/01_dab.htm)? – tfb

+0

それを逃した。ありがとう! – MadPhysicist

+0

[ENBF](https://en.wikipedia.org/wiki/Extended_Backus-Naur_form) –

答えて

8

これは私の答えの拡張であり、答えと思われるコメントです。

まずCLHSは仕様です。多くの人がもちろんCLを学んでいますが、入門用の材料はあまりよくありません。表記の中には、紙面(またはPDF)版の方が読みやすくなっています.HTMLへの変換はかなり良い(当時は英雄的でした)が、必ずしも完全ではありませんでした。紙のコピーそれはいくつかのケースでは良いです。

section 1.4.1には表記法があり、section 1.4.1.2は具体的には仕様で使用されているBNF変異体を扱います。

+1

BNFについて教えてくれてありがとう!私は何かが欠けていたことを知っていた! :) – MadPhysicist

関連する問題