Indentation

Un programmeur Common Lisp ne compte jamais les parenthèses pour comprendre un programme. En fait, il ne les regarde presque pas. Il compte sur l'indentation pour lui divulguer la structure du programme. Ce (morceau de) programme est mal indenté :

(let* ((a '(a b c)))
       (list a)
  (length a))

Le programmeur pensera probablement qu'il y a deux variables locales, a et list. En fait, il n'y en a qu'une seule. La bonne indentation est la suivante :

(let* ((a '(a b c)))
  (list a)
  (length a))

Maintenant, la structure du programme est évidente. Un programme mal indenté peut donner une mauvaise idée de son fonctionnement, ou, du moins, ralentir considérablement sa lecture.

En fait, Common Lisp exploite les parenthèses à deux fins différentes :

C'est uniquement dans des cas exceptionnels que le programmeur indente son programme manuellement, le plus souvent en utilisant les fonctionnalités de Emacs. Dans la plupart des cas, l'indentation automatique est préférable et ce pour plusieurs raisons.

Chaque opérateur spécial, chaque macro et l'appel de fonction ont leur propre règle d'indentation.



Sous-sections
Irene DURAND
2011-10-14