4 votes

Lire et comprendre la documentation de Common Lisp (HyperSpec)

En essayant de me familiariser davantage avec les outils de Common Lisp, je me suis retrouvé en difficulté lors de la lecture de la documentation. En effet, il est difficile de comprendre à quoi ressemble l'utilisation de la macro en question.

Par exemple, considérez ce :

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

Comment interpréter les parenthèses ? Est-ce que les parenthèses rondes () correspond à une liste Lisp ? Qu'est-ce que la barre verticale ? Les accolades ? L'astérisque ?

Je suis capable de lire les pages de manuel Unix et de bien comprendre leur syntaxe, mais il semble que quelque chose de totalement différent se passe ici.

9voto

tfb Points 2159

Voici un développement de mon commentaire qui, je pense, sert de réponse.

Tout d'abord, rappelez-vous que le CLHS est, eh bien, une spécification : ce n'est souvent pas un très bon matériel d'introduction, bien que de nombreuses personnes aient appris le CL grâce à lui, bien sûr. Certaines notations sont également plus faciles à lire dans les versions papier (ou PDF) de la spécification : bien que la conversion en HTML soit assez bonne (et était héroïque à l'époque), elle n'est pas toujours complètement correcte : si vous pouvez obtenir une copie papier, c'est mieux dans certains cas.

Ceci étant dit : section 1.4.1 a des conventions de notation, et section 1.4.1.2 traite spécifiquement de la variante BNF utilisée dans la spécification.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X