OCamlで関数の引数と戻り値全てに型を指定する書き方

OCamlは強く型付けされた静的型付け言語ですが、型推論機能のお陰で態々型を明示する必要はありません。 が、個人的には型はコードを読む際のドキュメントとしての役割のほうが重要です。 なので省略せずに明示したいのですが、意外と型の明示の仕方はググってもヒットしてきません。ということで備忘録です。

サンプルとして、string型の数字と、int型の数値を受け取って、それぞれfloatに変換して加算してその値を返す関数を定義しました。

  • 型を明示したバージョン
utop # let a (b:string) (c: int): float = float_of_string(b) +. float_of_int(c);;
val a : string -> int -> float = <fun>
utop # assert( (a "1" 2) = 3.0 );;
- : unit = ()
  • 型を省略したバージョン
utop # let a b c = float_of_string(b) +. float_of_int(c);;
val a : string -> int -> float = <fun>
utop # assert( (a "1" 2) = 3.0 );;
- : unit = ()

型を明示した場合と省略した場合でインタフェースがちゃんと同じになっていることが分かります。

公開日:2020/01/16

OCaml

About me

ドイツの現地企業でWeb Developer/System Administratorとして働いているアラフォーおじさんです。

プログラミングとかコンピュータに関する事がメインですが、日常的なメモとか雑多なことも書きます。

Links :
目次