条件分岐

if 条件 then 式 else 式
  • 「条件」はboolかboolを返す式
  • 2つの「式」は同じ型を返す

条件文というか条件式?C#みたく分岐してごにょごにょって感じではないな。
どっちかというと三項演算子みたいな雰囲気。

(* 絶対値を返す *)
# let abs_value x = 
    if x > 0.0 then x
               else -. x;;
val abs_value : float -> float = <fun>
# abs_value (-5.);;
- : float = 5.

ということは、C#では

if (x < 0) {
  // x < 0の場合
} else if (x < 10) {
  // 0 <= x < 10 の場合
} else if (x < 20) {
  // 10 <= x < 20 の場合
} else if (x < 30) {
  // 20 <= x < 30の場合
} else {
  // その他
}

だと、OCamlでは

if x < 0 then "x < 0の場合"
         else if x < 10 then "0 <= x < 10 の場合"
                        else if x < 20 then "10 <= x < 20 の場合"
                                       else if x < 30 then "20 <= x < 30の場合"
                                                      else "その他"

となるわけか。