1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
<< L'uniformité du style est plus importante que le style lui-même. >>
(Kernigan & Pike, The Practice of Programming)
Mode Emacs
==========
Tuareg, que l'on trouve ici : http://www.prism.uvsq.fr/~acohen/tuareg/
avec le réglage suivant : (setq tuareg-in-indent 2)
Types récursifs et filtrages
============================
Une barre de séparation y compris sur le premier constructeur
type t =
| A
| B of machin
match expr with
| A -> ...
| B x -> ...
Remarque : à partir de la 8.2 environ, la tendance est à utiliser le
format suivant qui permet de limiter l'escalade d'indentation tout en
produisant un aspect visuel intéressant de bloc :
type t =
| A
| B of machin
match expr with
| A -> ...
| B x -> ...
let f expr = match expr with
| A -> ...
| B x -> ...
let f expr = function
| A -> ...
| B x -> ...
Le deuxième cas est obtenu sous tuareg avec les réglages
(setq tuareg-with-indent 0)
(setq tuareg-function-indent 0)
(setq tuareg-let-always-indent nil) /// notons que cette dernière est bien
/// pour les let mais pas pour les let-in
Conditionnelles
===============
if condition then
premier-cas
else
deuxieme-cas
Si effets de bord dans les branches, utilisez begin ... end et non des
parenthèses i.e.
if condition then begin
instr1;
instr2
end else begin
instr3;
instr4
end
Si la première branche lève une exception, évitez le else i.e.
if condition then if condition then error "machin";
error "machin" -----> suite
else
suite
|