HelloWorld

http://www.scribd.com/doc/45477/Thinking-in-Erlang-Japanese-version

こんなテキストを発見したので、週末に向けてErlangをちょっと触ってみる。

インストール

$ sudo aptitude install erlang

特にいうことなし。

HelloWorld

$ emacs hello.erl

-module(sample).
-export([hello_world/0]).

hello_world() ->
    io:fwrite("Hello, World!~n", []).
  • 一行目がモジュール名。ファイル名とモジュール名は同じじゃないと駄目。emacsErlangモードを使ってるときはファイル名とモジュール名が違うとちゃんと指摘してくれる。
  • 二行目は公開する関数名/引数の数
  • 四行目が関数宣言
  • 五行目は関数定義

実行

$ erl
Eshell V5.5.2 (abort with ^G)
1> c(hello).
{ok,hello}
2> hello:hello_world().
Hello, World!
ok
3> init:stop().
ok
4> $

  • c(モジュール名) でコンパイル
  • モジュール名:関数名(引数) で関数呼び出し。
  • init:stop() でシェルを終了できる。

おまけ

$ ls
hello.beam hello.erl

コンパイルすると .beam と言うファイルが出来るらしい。

$ erl
Eshell V5.5.2 (abort with ^G)
1> hello:hello_world().
Hello, World!
ok
2> init:stop().
ok
3> $

コンパイル結果が実行ディレクトリにあると、何もしなくても読み込んでくれるのかな?

まとめ

Erlangをちゃんと色付けできるスーパーPRE記法に感動した。