1.9 スタンドアロン Caml プログラム

今までは対話式システムですべての例を実行してきました。Caml のコードは、バッチコンパイラ ocamlc または ocamlopt を使用することで分割コンパイルも出来、非対話的に実行することも出来ます。ソースコードのファイルは拡張子を .ml としてください。ソースコードは文の列から成り、実行時にソースコードの上から順に評価していきます。対話環境と異なり、型や値が自動的に表示されることはありません。何か出力するにはプログラムから表示関数を呼んでください。以下にフィボナッチ数列を表示するスタンドアロンプログラムの例を示します。

(* File fib.ml *)
let rec fib n =
  if n < 2 then 1 else fib(n-1) + fib(n-2);;
let main () =
  let arg = int_of_string Sys.argv.(1) in
  print_int(fib arg);
  print_newline();
  exit 0;;
main ();;
    

Sys.argv はコマンドライン引数を格納した文字列の配列です。 Sys.argv.(1) はその配列の先頭の引数の文字列です。 このプログラムは以下のようにしてコンパイルして実行します。

$ ocamlc -o fib fib.ml
$ ./fib 10
89
$ ./fib 20
10946