Programación en Erlang/Operadores y símbolos del lenguaje

Operadores de Control

editar
Simbolo Propósito
, Separador de Comando
; Separador de Comando
. Finalizador de Comando
-> Declaración de Funciones o Guard
% Comentario

Erlang puede ser un poco confuso ya que existen 2 tipos de separadores de comando. La , se utiliza para separar expresiones. Esto generalmente se utiliza cuando se tiene una expresión después de otra como es en la programación secuencial. El separador ; es utilizado cuando existen distintos niveles de comandos que necesitan ser finalizados como en el caso de case o guard. El . se utiliza para terminar una función (o expresión, si se está corriendo desde la consola). Los comentarios inician con un % y cubre el resto de la oración pero lo el final, el final de un comentario es marcado por un “ “ (espacio).

Expresiones Aritmeticas

editar
Simbolo Proposito Tipo de Datos
+ Suma Enteros o Flotantes
- Resta Enteroso o Flotantes
* Multiplicación Enteros o Flotantes
div División de Enteros Enteros
/ División de Punto Flotante Enteros
rem División Modular Entero

Erlang utiliza notación infija para las operaciones aritméticas. Por ejemplo: (2+3)*2 se evaluaría a 10 como esperado. Ya que Erlang es el tipo de lenguaje dinámico se requiere un operador especial para prevenir la coerción a un punto flotante. Utilizando el operador / causaría la misma conversión implícita.

Ejemplos:

  1> +1.
  1
  2> -1.
  -1
  3> 1+1.
  2
  4> 4/2.
  2.0
  5> 5 div 2.
  2
  6> 5 rem 2.
  1

Operadores Áritmeticos de Bit a Bit

editar
Símbolo Propósito Tipo de Datos
band Y Lógica Entero
bor O Lógica Entero
bxor O exclusiva Lógica Entero
bnot No Lógico Unario Entero
bsl Bitshift Left Entero
bsr Bitshift Right Entero

Ejemplos:

  0
  2> 2#10 bor 2#01.
  3
  3> a + 10.
  ** exception error: bad argument in an arithmetic expression
       in operator  +/2
          called as a + 10
  4> 1 bsl (1 bsl 64).
  ** exception error: a system limit has been reached
       in operator  bsl/2
          called as 1 bsl 18446744073709551616

Operadores Lógicos

editar
Símbolo Propósito
and Y Lógica (AND)
or O Lógica (OR)
xor O Exclusiva (XOR)
not No Lógica (NOT)

Ejemplos:

  1> not true.
  false
  2> true and false.
  false
  3> true xor false.
  true
  4> true or garbage.
  ** exception error: bad argument
       in operator  or/2
          called as true or garbage