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)?
Réponses
Trop de publicités?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.
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.
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.
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).