Erlang Ubuntuへインストールと、Hello world!
これまで何度も手をつけては挫折してきたErlangですが、
今年こそ、ちゃんと勉強しようとおもいます。
最終的な目標はTCPサーバがかけるようになること。
手始めに、Ubuntuへ実行環境をインストールしました。
インストールはパッケージマネージャを使って行いました。
「システム」-「システム管理」-「Synapticパッケージマネージャ」から
パッケージマネージャを起動します。
クイック検索で、erlangと検索すると、erlangパッケージが
表示されるかと思います。
パッケージを選択すればインストールできます。
私の環境では、「1:12.b.5-dfsg-2」というバージョンがインストールされました。
コンソールを起動し、erlを実行します。
Erlang(BEAM) emulator version 5.6.5[source]
[smp:2][async-threads:0][kernel-poll:false]
Eshell V5.6.5 (abort with ^G)
1>
こんな感じで表示されれば、インストールは成功してます。
お決まりのHello world!
1> io:fwrite("Hello world!\n").
Hello world!
ok
※最後のドットを忘れずに。
終了するには、
2> q().
ついでに、ソースコードを書いてコンパイル&実行を試してみます。
以下の内容の、「hello.erl」というファイルを作成します。
-module(hello).
-export([hello_out/0]).
hello_out() -> io:fwrite("Hello world!\n").
一行目は、モジュール「hello」を作りますよ。という宣言です。
これは、ファイル名と同一である必要がある模様。
二行目は、関数「hello_out」(引数は0個)を外部から呼び出し可能と
しますよ。という宣言です。
最後の行が、関数の実体。
"Hello world!"と出力するだけです。
このファイルがあるディレクトリに移動してerlコマンドを実行し、
Eshellを表示します。
Eshellに
1> c(hello).
と入力して実行すると、{ok,hello}と表示されます。
これでコンパイルは完了。
ソースフォルダと同じ階層に、hello.beamというファイルが生成されます。
続けて、関数を呼び出してみます。
2> hello:hello_out().
Hello world!
ok
ちゃんと実行されました。
ちなみに、hello.erlの
-module(hello).
を
-module(hello2).
に変更してコンパイルしようとすると、
3> c(hello).
** Module name 'hello2' does not match file name 'hello' **
{error,badfile}
というエラーが表示されます。
・・・先は長いです。
もどる