76 votes

Lisp en commentant convention

Qu'est-ce que le Lisp de la convention sur le nombre de points-virgules à utiliser pour les différents types de commentaires (et de ce que le niveau d'indentation pour différents nombres de points-virgules devraient être)? Aussi, est-il une convention sur l'utilisation du point-virgule commentaires et quand utiliser #|commentaire sur plusieurs lignes|# (en supposant qu'ils existent et n'existent sur plusieurs implémentations)?

86voto

Paulo Madeira Points 1986

En Common Lisp:

;;;; At the top of source files

;;; Comments at the beginning of the line

(defun test (a &optional b)
  ;; Commends indented along with code
  (do-something a)                      ; Comments indented at column 40, or the last
  (do-something-else b))                ; column + 1 space if line exceeds 38 columns

Emacs n'est pas fontify #| |# très bien, et depuis plus lispers utilisation d'Emacs, la plupart des lispers n'utilisez pas ces commentaires.

Je dirais qu'il n'existe pas de règles pour l'utilisation de celui-ci, mais je crois que c'est plus rapide pour les commentaires d'énormes quantités de code, ou d'insérer quelques description longue où les points-virgules sont juste dans la façon de l'édition, comme d'énormes BNF listes ou similaires.

Il y a une astuce pour désactiver le code de préfixe d'une expression avec #+nil:

(defun test (a &optional b)
  #+nil
  (do-something a)
  (do-something-else b))

SLIME aide ici par fontifying la forme (do-something a) un commentaire lorsque vous avez un Lisp en cours d'exécution. L'astuce est basée sur l'hypothèse qu' *features* ne contient pas de nil ou :nil.

Hormis #| |# et #+nil, je crois que le point-virgule règles sont largement adoptées dans d'autres lisps trop.

31voto

Rainer Joswig Points 62532

Commentaire sur plusieurs lignes #| |# sont souvent utilisés pour commenter de plus grandes quantités de code Lisp ou un exemple de code. Depuis quelques Emacs implémentations semblent avoir de la difficulté à l'analyse, certains sont à l'aide #|| ||# à la place.

Pour l'utilisation des points-virgules voir l'exemple de commentaire dans le livre Common Lisp de la Langue (page 348), 1984, Presse Numérique, par Guy L. Steele Jr:

;;;; COMMENT-EXAMPLE function. 
;;; This function is useless except to demonstrate comments. 
;;; (Actually, this example is much too cluttered with them.) 

(defun comment-example (x y)      ;X is anything; Y is an a-list. 
  (cond ((listp x) x)             ;If X is a list, use that. 
        ;; X is now not a list.  There are two other cases. 
        ((symbolp x) 
        ;; Look up a symbol in the a-list. 
        (cdr (assoc x y)))       ;Remember, (cdr nil) is nil. 
        ;; Do this when all else fails: 
        (t (cons x                ;Add x to a default list. 
                 '((lisp t)       ;LISP is okay. 
                   (fortran nil)  ;FORTRAN is not. 
                   (pl/i -500)    ;Note that you can put comments in 
                   (ada .001)     ; "data" as well as in "programs". 
                   ;; COBOL?? 
                   (teco -1.0e9))))))

Dans cet exemple, les commentaires peuvent commencer avec un à quatre points-virgules.

  • Seul point-virgule commentaires sont tous alignés à la même colonne à droite; en général, chaque commentaire ne concerne que le code c'est à côté. Parfois, un commentaire est assez long pour occuper deux ou trois lignes; dans ce cas, il est classique de retrait de la poursuite de lignes de commentaire d'un espace (après le point-virgule).

  • Double-point-virgule commentaires sont alignés au niveau de l'indentation du code. Un espace conventionnelle qui suit les deux points-virgules. De tels commentaires habitude de décrire l'état du programme à ce point ou la section de code qui suit le commentaire.

  • Triple point-virgule commentaires sont alignés sur la marge de gauche. Ils ont généralement le document ensemble de programmes ou de grands blocs de code.

  • Quadruple point-virgule commentaires indiquent généralement des titres de l'ensemble des programmes ou de grands blocs de code.

9voto

Peter S. Housel Points 1813

La norme de référence pour Common Lisp style, y compris les commentaires des conventions, est Peter Norvig et Kent Pitman de Tutoriel sur Bon Style de Programmation Lisp.

7voto

Eli Barzilay Points 21403

Au lieu de décrire ici, jetez un oeil à cette page. Il parle Emacs Lisp, mais la convention sont les mêmes dans toutes lisps (et les schémas).

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