2012-03-17 5 views

risposta

8

provare la seguente:

case is_special_atom(A) of 
    true -> 
     %do something here; 
    false -> 
     %do something else! 
end. 

is_special_atom(atom_b) -> true; 
is_special_atom(atom_c) -> true; 
is_special_atom(_) -> false. 
+1

Questo * factoring * soluzione è di solito un modo eccellente di farlo. L'ho visto usato dove il valore di ritorno è molto più complesso di un 'booleano()'. Utilizzare una funzione ausiliaria per analizzare il risultato e quindi il caso su questo risultato. –

8

È possibile utilizzare guardie:

A = 'atom_a', 
case A of 
    B when B =:= 'atom_b'; B =:= 'atom_c' -> 
    %do something here; 
    'atom_a' -> 
    %do something else! 
end.