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