Shammer's Philosophy

My private adversaria

OCaml基礎

とりあえず、せっかくインストールしてみたのでちょっとだけ試す。
以下のことがわかった。

  • 変数や関数の宣言は let に続けて記述
  • []で括ると配列になり、配列内の要素は;(セミコロン)で区切る
  • 再帰関数の場合は、let rec $FunctionName $Arguments = ... と、rec を追記する
  • インタプリタ使用時は、;;で一つの文(?)が終了する
  • #use "$FILE_NAME" とインタプリタ上で実行することで、$FILE_NAMEに書かれた内容をスクリプトのように実行できる
  • インタプリタじゃない場合は、セミコロン等の区切りは不要で構文に応じて評価される
  • #quit;;でインタプリタ終了

具体例は以下。

        Objective Caml version 3.12.1

# "Hello,World!";;
- : string = "Hello,World!"
# 3 + 3;;
- : int = 6
# let x = 10;;
val x : int = 10
# x;;
- : int = 10
# let say_Hello = "HelloWorld!!";;
val say_Hello : string = "HelloWorld!!"
# say_Hello;;
- : string = "HelloWorld!!"
# let add a b = a + b;;
val add : int -> int -> int = <fun>
# add 3 8;;
- : int = 11
# let rec sum list = match list with
    [] -> 0
  | first :: rest -> first + sum rest;;
val sum : int list -> int = <fun>
# sum [0;1;2;3;4;5;6;7;8;9;10];;
- : int = 55
# 

#useは使わなかったが・・・また今度やってみよう。