コマンドラインでErlang入門

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>

コメント

タイトルとURLをコピーしました