在erlang中,我经常编写如下代码:
case A of
A1 ->
something_simple_1;
A2 ->
case B of
B1 ->
something_simple_2;
B2 ->
case C of
C1 ->
something_simple_3;
C2 ->
...
end
end
end
Run Code Online (Sandbox Code Playgroud)
这很丑,怎么能避免这种情况?
case {A, B, C} of
{A1, _, _} ->
something_simple_1;
{A2, B1, _} ->
something_simple_2;
{A2, B2, C1} ->
something_simple_3;
{A2, B2, C2} ->
...
end
Run Code Online (Sandbox Code Playgroud)
请注意,这不允许您例如避免计算C
何时不需要它; 更普遍适用的方法只是提取功能.