『プログラミングの基礎』その7

『プログラミングの基礎』の練習問題を解く、の続きです。
本書で使っている言語はOCamlです。
今回は4.4型推論と型チェックです。

Ocaml インタプリタは裏で型推論と型チェックをしているらしいです。

  • 型推論
    • 型を一切、入力しなくても型を推論してくれる
  • 型チェック
    • 期待される正しい型のデータが使われているかをチェックする

本書に書いてある例題を入力してみました。

# let f x = 3 * x ;;
val f : int -> int = <fun>
# f 2.5 ;;
Error: This expression has type float but an expression was expected of type int
# let f2 x = 3.0 *. x ;;
val f2 : float -> float = <fun>
# f2 2.5 ;;       
- : float = 7.5

関数 f の型が int -> int なので、エラーになっちゃいましたね。