32.1 OCamlプログラムの作成と実行

まず一番簡単な例として,一日の秒数をコンピュータに計算させてみましょう.要するに,60×60×24を求めるわけです.

hwb31.1 Java プログラムの作成と実行では,ソースコードをファイルにしてコンパイラで変換を行い実行させていましたが,OCamlではソースコードを入力するとすぐ結果を表示してくれるソフトウェアが用意されています.

このように,入力した文字列をソースコードだと解釈して変換・実行を行うソフトウェアを一般にインタプリタと呼びます.

OCamlインタプリタの起動

最初にOCamlのインタプリタを起動します.ターミナルウィンドウを開いて,

ocamlreturn2
と入力します.すると以下のようなメッセージが表示され,OCamlインタプリタの準備ができたことが分かります.

ocamlreturn2
Objective Caml version 3.12.1

ここで,“#”はOCamlインタプリタのプロンプトで,画面の最後にこれが表示されているときにプログラムを入力すると,OCamlインタプリタは即座に入力されたプログラムを実行します.

OCamlインタプリタでのプログラムの実行

それはさておき,これでプログラムを打てる状態になりました.ではさっそく,

60*60*24;;

と入力してみましょう.ここで乗算記号として“×”ではなく“*”を使うのが,コンピュータ関連では一般的です.同じように除算記号として“÷”ではなく“/”を使います.入力の最後には“;;”を付け,returnを押します.間違って“;;”を入力する前にreturnを押してしまったとしても,改行されるだけなので,改めて“;;”を入力した上でreturnを押すと同じように受け付けられます.

こうしてプログラムを入力すると,

60*60*24;;return2
- : int = 86400
とターミナルに表示されます.何やら記号が並んでいますが,“86400”という計算結果が求められていることが分かります.

このように,最も簡単なプログラムは数学でお馴染みの数式です.この数式を,数値だけでなく色々なデータを扱うようにして,また四則演算だけでなく複雑な計算を行うようにしたものが本格的なプログラムの正体です.

また,プログラムは一定のルールに則って書く必要があります.間違った場合,例えば

60:60*24;;return2
Error: Syntax error
では,“*”が“:”になっているため計算が行えず,“Error”と表示されています.

このような時は書いた記述が正しいかどうかをよく確認してください.

caution
この先プログラムが複雑になっていくと,計算が止まらなくなることがあるかもしれません.そのような場合は, cを入力すると,計算を中止してocamlインタプリタのプロンプトが表示されます.

OCamlインタプリタの終了

まだまだ先は長いのですが,ここでOCamlインタプリタを止める方法を紹介しておきます.飛行機に乗ったら,飛び立つ前に非常口の確認をしますね.プログラミングも,本格的なプログラムを書く前に止め方を知っておきましょう.

OCamlインタプリタのプロンプト(“#”という文字)が表示されているときに,式を入力すると値が計算されました.このときに

#quit;;

または dを入力すると,OCamlインタプリタは終了してシェルに戻ります.

#quit;;return2