口で言うより行うことがErlang習得への近道と信じています。
case式の書き方
case 式 of
パターン1 [when ガードシーケンス1] ->
本文1;
パターンN [when ガードシーケンスN] ->
本文N
end
-
case
とof
の間にある式が評価される - その結果に対してパターンが順次マッチングされる
- マッチングが成功し、ガードシーケンスが真であれば、対応する本文が評価される
- 本文の戻り値が
case
式の戻り値となる - 真のガードシーケンスを持つパターンがない場合、
case_clause
ランタイムエラーが発生する
試しに練習目的でcase
式を使った簡単な無名関数を書いてみます。受け取った引数のパターンに応じて真偽を判定するだけの関数です。無名関数なので、Erlangシェルに貼り付けて使えます。
IsValidResult = fun (Result) ->
case Result of
{ok, _Value} ->
true;
error ->
true;
_Else ->
false
end
end.
> IsValidResult({ok, 123}).
true
> IsValidResult(error).
true
> IsValidResult([1, 2, 3]).
false
Elixirにも挑戦したい
闘魂ElixirシリーズとElixir Schoolがオススメです。