erlangも復習しながら入門記事を作ってみます。
コマンドラインでerlang入門
インタプリタの起動
takk~$ erl Erlang/OTP 21 [erts-10.2.4] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] Eshell V10.2.4 (abort with ^G) 1>
インタプリタの終了
Ctrl+gを押すと、プロンプトが–>に切り替わります。
User switch command -->
この状態で、q、Enter実行するとインタプリタを終了します。
User switch command --> q takk~$
文字列を表示
io:formatで文字列表示ができます。
改行コードを表示するには、~nを使います。
処理実行の最後は、.(ピリオド)で締め括ります。
Eshell V10.2.4 (abort with ^G) 1> io:format("HELLO~n"). HELLO ok 2>
書式付き文字列を表示
1> io:format("~p~n",[100]). 100 ok 2>
[]で囲うとリストになります。
要素は,(カンマ)で区切って並べます。
1> io:format("~p ~p~n",[100,200]). 100 200 ok 2>
変数はなくて単一代入変数
変数は変数でなく1回値を入れたら変更ができない単一代入変数になります。
変数名は英大文字から始めます。
1> a=100. ** exception error: no match of right hand side value 100 2> A=100. 100 3> A=101. ** exception error: no match of right hand side value 101 4>
関数
1> Myfunc = fun(A) -> A * 2 end. #Fun<erl_eval.6.128620087> 2> Myfunc(10). 20 3>
処理を複数記述する場合は、,(カンマ)を使います。
1> Myfunc = fun(A) -> B=A+10, C=B+100 end. #Fun<erl_eval.6.128620087> 2> Myfunc(1). 111 3>
改行はどこに入れてもよいです。
1> Myfunc = fun(A) -> 1> B = A + 10, 1> C = B + 100 end. #Fun<erl_eval.6.128620087> 2> Myfunc(1). 111 3>
リストの要素の取り出し
|を使って、リストの先頭要素と、それ以外を取り出すことができます。
1> [A|B] = [1,2,3,4,5]. [1,2,3,4,5] 2> A. 1 3> B. [2,3,4,5] 4>
Erlang case
case 式 of
パターン1 -> 処理1;
パターン2 -> 処理2;
_ -> 上記パターン以外の場合処理
end
takk~$ erl Erlang/OTP 21 [erts-10.2.4] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] Eshell V10.2.4 (abort with ^G) 1> Choose = fun(A) -> 1> case A of 1> 1 -> 10; 1> 2 -> 200; 1> _ -> 3000 1> end 1> end. #Fun<erl_eval.6.128620087> 2> Choose(1). 10 3> Choose(2). 200 4> Choose(999). 3000 5>
コメント