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}

というエラーが表示されます。


・・・先は長いです。



もどる