Programación en Erlang/Estructuras de decisión e iteración
IF
[editar] if
GuardSeq1 ->
Body1;
...;
GuardSeqN ->
BodyN
end
Las ramas de un si-expresión se analizan de forma secuencial hasta que una secuencia de guardia GuardSeq que se evalúa como verdadera se encuentra. Entonces, el organismo correspondiente (la secuencia de expresiones separadas por ',') es evaluada. El valor de retorno del cuerpo es el valor de retorno de la expresión del IF.
Si no hay secuencia de guardia es cierto, una carrera if_clause tiempo de error. Si es necesario, la expresión de la guardia real puede ser utilizado en la última rama, ya que la secuencia de la guardia siempre es cierto.
is_greater_than(X,Y) ->
if
X>Y ->
true;
true -> % works on an ´else´ branch
false
end
Case
[editar]La expresión expr es evaluado y el patrón de los patrones se comparan con la secuencia de resultados. Si un partido tiene éxito y la secuencia de la guardia opcional GuardSeq es cierto, el organismo correspondiente se evalúa.
El valor de retorno del cuerpo es el valor de retorno de la expresión caso. Si no hay un patrón de coincidencia con una secuencia de la guardia real, una ejecución case_clause tiempo de error.
case Expr of
Pattern1 [when GuardSeq1] ->
Body;
....;
PatternN [when GuardSeqN] ->
BodyN
end