関数。の続き
関数の型
# 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インタプリタは、引数が正しい型になっているかについてもチェックしてます。
関数の作り方
- 作成する関数の目的を考える -> 関数の型(引数、戻り値)を決める
- 入力と出力、テストプログラムを書く
- 関数の本体を作る
- 2.で作ったテストで動作を確認
※1.はコメントとしてちゃんと書いておく
次回は、実際に関数を作る。