if-then-elseのインデント
さるところでちょっとだけ盛り上がっている(?)ので。OCamlのコーディングのガイドラインにもありますが、e1とe2が短いときに
if e1 then e2 else (* ...some long expression... *)
と書くのは、「trivialなケースを先に済ませて、重要なケースに集中する」という原則にも合致するかと。CやLispだとカッコを書くことになっているので嫌かもしれませんが、Cでも
if (e1) { return e2; } /* ...some long sequence of statements... */
みたいな書き方はしますよね。これを
if e1 then e2 else (* ...some long expression... *)
とか
if (e1) { return e2; } else { /* ...some long sequence of statements... */ }
とか書くことはあまりないかと。あくまでe1とe2が短いときだけですが。(ちなみに
if (e1) statement1; else statement2; statement3;
は、statement1の後にstatement3へ行ってしまうので、別の話というか、明らかに変。statement2が複文だったらインデントも省略できないし。)