Quando queremos ter código com ramificações, podemos usar cond/1:
cond do
x > 10 -> :this_might_be_the_way
y < 7 -> :or_that_might_be_the_way
true -> :this_is_the_default_way
end
O cond segue o primeiro caminho que for avaliado como true. Pelo menos uma das cláusulas tem de ser avaliada como true, senão é lançado um erro em tempo de execução.
O condicional cond costuma ser usado quando há mais de dois ramos lógicos e cada ramo tem uma condição baseada em variáveis diferentes. Se todas as condições se basearem nas mesmas variáveis, um condicional case é mais adequado. Se houver apenas dois ramos lógicos, usa antes um condicional if.