ErlangでHello Worldまで。
慢性的ネタ切れ状態になってきたので、新しい言語をさわってみることにします。ということでErlangです。
まずは、Erlang Landやこれから15分でErlangを始めるための資料 をみながら実行環境のerlをインストールして、「Hello World」まで。
Hello World
Hello Worldです。せっかくなので、別ファイルで関数を定義し、読み込んで使ってみます。まずは関数のコード。これをhello.erlとして保存しておきます。
- 「-module(<モジュール名>).」でモジュールを定義します。モジュール名はファイル名と同じにする必要があるようです。
- 「-export([<関数名>/<引数の数>]).」でモジュールで公開する関数(とその引数の数)を指定します。
- 「%」以降はコメント行です。
-module(hello). % モジュール名の宣言 -export([hello/0]). % モジュールで公開する関数。引数なしのhelloを呼び出せるようにする。 % Hello Worldを出力 hello() -> io:put_chars("Hello World!\n").
実行してみます。まずはerlを起動。
$ erl Eshell V5.5.4 (abort with ^G) 1>
次に、上で作成したコードをコンパイル。c関数?を使います。
1> c(hello). {ok,hello}
コンパイルできたようです。関数を呼び出してみます。「<モジュール名>:<関数名>(<引数>,...).」で実行できます。
2> hello:hello(). Hello World! ok
「Hello World!」が表示されました!
複利計算プログラム
さすがにHello World!だけだとアレなので、複利を計算するプログラムも書いてみました。再帰(←まぁ、これをしてみたかった訳ですが)を使ってループしています。
-module(sample). -export([compound/3]). % BaseをRateでYear年間運用した際の複利を計算する。 compound( Base, Rate, Year ) -> if Year==0 -> Base; Year/=0 -> compound(Base+Base*Rate, Rate, Year-1) end.
実行結果です。
13> c(sample). {ok,sample} 14> sample:compound(10000, 0.05, 10). 1.62889e+4 15> sample:compound(10000, 0.1, 10). 2.59374e+4