この節ではErlangのシェルに触れてもらうことから始めます。
まず始めに、Erlangを動かしてみましょう。
オペレーティングシステムに付属しているコンソール(コマンドプロンプト、ターミナル)を起動して、
「 erl 」と入力することでErlangのシェルを起動することができます。
(Windowsユーザの方は werl.exe を起動するか、コマンドプロンプトに erl と入力することで起動できます。
詳しくは「Windowsへのインストール」を参照下さい。)
ada:~ yuichi$ erl
Erlang (BEAM) emulator version 5.6.1 [source] [smp:2]
[async-threads:0] [kernel-poll:false]
Eshell V5.6.1 (abort with ^G)
1>
コンソールのシェルから、Erlangシェルに移りましたね。
Erlangシェルに入力を促されたので、何か入力してみます。
1> 5 + 7.
12
2>
5 + 7
を評価して 12
を返していることがわかりますね。
注目して欲しいのは最後の「 .
」で、これは式の終了を意味します。
CやJavaでいうところの「 ;
」と同じようなものですが、少し違うところがあります。
もう一つ例を見てみましょう。
2> Num = 5 + 6,
2> Num + 8.
19
「 Num
」は変数名です。多くのスクリプト言語と同様に、Erlangは変数の型を明示的に宣言しません。
変数は自動的に適した型へと変換されます。
Erlangシェルにおいては「 , 」は式群(一続きの式のまとまり)の途中であり、
「 .
」は式群の終端となっています。
各行にあるそれぞれの式が評価されていき、終端の式が評価されて、その結果が返されます。
CやJavaでいう return にあたる式に . を使うという認識で今のところは大丈夫です。
(細かいことは関数とモジュールの章で扱います。)
今回はまず、
Num = 5 + 6
が評価されて、次に
Num + 8
が評価されています。この式が式群の終端となっているので、返り値はこの式の評価である
19
です。
上の例において、Erlangのシェル内の「 > 」の左の数字が2のままであるのはそのためで、1行目ではまだ式が終了していないのです。
Erlangシェルの終了は以下のように関数q()を利用します。
関数halt()も同じ役割を持っています。
3>q().
ok
これを受け付けない時は「 Ctrl と c 」の同時押しをします。
1>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
(v)ersion (k)ill (D)b-tables (d)istribution
そして a
を押せばシェルが終了します。
a
ada:~ yuichi$
その他のシェルで利用する関数については、「Erlangシェルのコマンド」という節を参考にして下さい。