読者です 読者をやめる 読者になる 読者になる

関数。の続き

関数の型

# let f x = (x *. x) *. 22. ;;
val f : float -> float = <fun>


val f : float          -> float =
fは float型xを受け取ったら float型の値を返す 関数である

と読む。


上の例では、float型xを受け取ったら、float型の値を返すので
関数fはfloat型ぽいけれども、実は「float -> float型(float型を受け取ったらfloat型を返す。)」という型になる。

ここで関数fは、float -> float型

# f 3 ;;

の様に、int型を渡すとエラーになります。


関数の定義で、特に型を指定していませんが?
A.)
関数の定義で「*.」を使っているので、OCamlインタプリタが関数の型を推論してくれる。
さらに、OCamlインタプリタは、引数が正しい型になっているかについてもチェックしてます。

関数の作り方

  1. 作成する関数の目的を考える -> 関数の型(引数、戻り値)を決める
  2. 入力と出力、テストプログラムを書く
  3. 関数の本体を作る
  4. 2.で作ったテストで動作を確認

※1.はコメントとしてちゃんと書いておく

次回は、実際に関数を作る。