blob: a8924ba65dc7fc78d72f3bb11532d5ad5a2f377a (
plain)
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
|