Lisp文档模板中的星号是什么意思?

cjg*_*cjg 2 lisp common-lisp ebnf

例如:

* (describe 'do)
Run Code Online (Sandbox Code Playgroud)

...

  Documentation:
    DO ({(Var [Init] [Step])}*) (Test Exit-Form*) Declaration* Form*
Run Code Online (Sandbox Code Playgroud)

这个文档模板中的星星是什么意思?

Rai*_*wig 6

*是在类似BNF的符号中重复零次或多次符号.

从而

FOO Form*
Run Code Online (Sandbox Code Playgroud)

表示前面的元素可以重复零次或多次:

(foo form-1 ... form-n)  ; zero or more forms
Run Code Online (Sandbox Code Playgroud)

此外,{和}是分组语法:

FOO ({(Form-a Form-a)}*)
Run Code Online (Sandbox Code Playgroud)

手段

(foo ((form-1-a form-1-b)              ; zero or more
      ...
      (form-n-a form-n-b)))
Run Code Online (Sandbox Code Playgroud)

  • CLHS的[1.4.1.2]部分的链接(http://www.lispworks.com/documentation/HyperSpec/Body/01_dab.htm)似乎是合适的. (2认同)