Programación en Erlang/Tabla de operadores con asociatividad y precedencia

De Wikilibros, la colección de libros de texto de contenido libre.
Saltar a: navegación, buscar

En expresiones que consisten de sub-expresiones los operadores serán desarrollados de acuerdo a su precedencia definida.

Precedencia (de más alta a más baja)
Símbolo Asociatividad
:
#
Unary + - bnot not
/ * div rem band and Izquierda
+ - bor bxor bsl bsr or xor Izquierda
++ -- Derecha
== /= =< < >= > =:= =/=
andalso
orelse
= ! Derecha
catch

Los operadores con la prioridad más alta serán los primeros en evaluarse. Operadores con la misma prioridad serán evaluados por su asociatividad. Los operadores aritméticos con asociatividad por la izquierda son evaluados de izquierda a derecha.

Ejemplo:
6 + 5 * 4 - 3 / 2 => 6 + 20 - 1.5 => 26 - 1.5 => 24.5

Expresiones booleanas de Corto Circuito[editar]

Ejemplo:

 Expr1 orelse Expr2
 Expr1 andalso Expr2
   

Estas son expresiones booleanas en las que Expr2 será evaluada solo si es necesario. En una expresión orelse, Expr2 se evaluara si y solo si Expr1 se evalúa a false. En una expresión andalso, Expr2 será evaluado si y solo si Expr1 se evalúa a true.

Ejemplo:

if A >= 0 andalso math:sqrt(A) > B -> ...

if is_list(L) andalso length(L) == 1 -> ...