[OCaml]#1 OCamlで関数や変数を定義する

| コメント(0) | トラックバック(0)
OCaml入門の第一歩として、変数や関数の定義をしてみる。
まずOCamlは、CやJAVAのようにソースコードを何行も書いてそれを一気にコンパイルすると言った形を取らず、 命令を書いたらそれが一行一行実行される。(正確には;;と打つたびに実行される)

なので、関数名や変数名が重複すると、2回目以降で定義した時に上書きされてしまう。だが、これはデバッグなんかを簡単に出来るので慣れてしまえば逆に便利だ

まずは変数の定義と四則演算
# let a = 7;;
val a : int = 7
# let b = 5;;
val b : int = 5
# a + b;;
- : int = 12
# a - b;;
- : int = 2
# a * b;;
- : int = 35
# a / b;;
- : int = 1
# a mod b;;
- : int = 2

浮動小数点を扱いたい時は
# let c = 2.5;;
val c : float = 2.5
# let d = 0.2;;
val d : float = 0.2
# c +. d;;
- : float = 2.7
# c -. d;;
- : float = 2.3
# c *. d;;
- : float = 0.5
# c /. d;;
- : float = 12.5
のように演算子にも.をつける必要がある。もし、それを書き忘れたら
# c + d;;
This expression has type float but is here used with type int
と即座にエラーが出て、コンパイルエラーで何行目が・・・のようにならずに違えた瞬間に教えてくれる。
また、円周率の計算は次の式でできる。
# let pi = 4.0 *. atan(1.0);;
val pi : float = 3.14159265358979312



関数の定義も同じletを使って行える。
# let f a b x =
  a*x + b
;;
val f : int -> int -> int -> int = <fun>
# f 3 4 5;;
- : int = 19
と書くと、3つの整数を引数にとって、a*x +bを返す関数が定義できる。
また、
# let f2 = f 2 3;;
val f2 : int -> int = <fun>
# f2 2;;
- : int = 7
のように、関数を使って関数を定義することも出来る。f2は、ひとつの整数を引数にとり、2*x+3を返す関数である。

トラックバック(0)

トラックバックURL: http://blog.isocchi.com/MovableType/mt-tb.cgi/184

コメントする

このブログ記事について

このページは、isocchiが2007年10月 8日 17:47に書いたブログ記事です。

ひとつ前のブログ記事は「[OCaml]#0 OCamlをインストールする」です。

次のブログ記事は「[OCaml]#2 再帰関数を定義する」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 5.0