#lightシンタックスについて思うこと

#lightシンタックスOCamlとの互換性がないためあまり好きじゃない。

しかし、matchをネストするようなケースは、lightシンタックスのほうが綺麗に記述出来る。通常のシンタックスだと()またはbegin〜endが事実上必須になる(ように思う)から。

通常のシンタックスだと、括弧やbegin〜endを書かない場合、2番目に書いたmatchが残り全てのパターンにマッチしてしまう。そのため、次の例(#light "off")では一番下のワイルドカードにはマッチしないどころか、最初の1にマッチするルールが無いと言われ例外が発生する。

match 1 with
    | 0 -> 
        match 10 with
            | 0 -> 0
            | _ -> 10
    | _ -> 1

しかし、一番良いのは、ネストしたパターンマッチを使用しないようにプログラムすることかもしれない