OCamlをつつく4-型推論。気が利く子だねぇ。
もう一回変数束縛のプログラムを見てみよう。
let name = "インドリ";;
よく見たら型が明示されていないピヨ。これはLL言語によくある機能で型推論って言うんだ。でもボクはちょっと疑問を感じるピヨ。だってぇ・・・
# 2.0 / 4.0;;
Characters 0-3: 2.0 / 4.0;; ^^^ This expression has type float but is here used with type int
ってエラーが出るピヨ。これがちょっと後味悪いピヨ。まぁ、関数推論は無理としてもOCamlはオブジェクト指向言語なんだから、演算子オーバーライドは用意して欲しかったなぁ。型推論が便利なだけにちょっとだけ不満だなぁ。
ちなみに、型を明示する方法もあるピヨ。明示したい場合はこう書くんだ。
let x : int = 10 + 20;;
このように変数名+コロン+型名で型が明示出来るよ。型推論機能に頼りすぎたら可読性が悪いプログラムが出来上がるから明示する方法も覚えておこう。と言う事で今回は終わり。