私は現在、Erlang を取り上げています。そのパターン マッチングは、私が最近見た中で最もクールなものの 1 つです。演習で思いついた小さなおもちゃの関数は次のとおりです。
b_and(true, true) ->
true;
b_and(true, false) ->
false;
b_and(false, true) ->
false;
b_and(false, false) ->
false;
b_and(_, _) ->
{error, invalid_object}.
しかし、列挙されたアトムのセットからのみ受け入れるようにパターン内の変数に指示する構文はありますか? そうすれば、次のように短縮できます。
b_and(true, true) ->
true;
% We've already satisfied the only true case
b_and(ENUM(true, false), ENUM(true, false)) ->
false;
b_and(_, _) ->
{error, invalid_object}.
パターン マッチングに関するドキュメントを調べましたが、このようなものは見つかりませんでした。