我目前正在学习 Erlang,它的模式匹配是我最近看到的最酷的东西之一。我在练习中想出的一个小玩具功能如下:
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}.
我浏览了有关模式匹配的文档,但找不到类似的东西。