Diferencia entre revisiones de «Programación en Erlang»

Contenido eliminado Contenido añadido
Sin resumen de edición
Sin resumen de edición
Línea 175:
-module(primer).
-export([hello_world/0]).
hello_world() ->
"hello world".
Línea 187:
"hello world"
3>
 
==Diccionario de palabras reservadas==
===Palabras Reservadas===
Las palabras reservadas en Erlang son las siguientes:
{|Border=2
|-
|after
|and
|-
|andalso
|band
|-
|begin
|bnot
|-
|bor
|bsl
|-
|bsr
|bxor
|-
|case
|catch
|-
|Cond
|div
|-
|End
|fun
|-
|if
|let
|-
|not
|of
|-
|or
|orelse
|-
|query
|receive
|-
|rem
|try
|-
|when
|xor
|}
 
==Operadores y Simbolos del lenguaje==
 
===Operadores de Control===
 
{|Border=2
|-
!Simbolo
!Propósito
|-
|,
|Separador de Comando
|-
|;
|Separador de Comando
|-
|.
|Finalizador de Comando
|-
|<nowiki>-></nowiki>
|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===
{|Border=1
|-
!Simbolo
!Proposito
!Tipo de Datos
|-
|<nowiki>+</nowiki>
|Suma
| Enteros o Flotantes
|-
|<nowiki>-</nowiki>
|Resta
| Enteroso o Flotantes
|-
|*
|Multiplicación
| Enteros o Flotantes
|-
|div
|División de Enteros
| Enteros
|-
|<nowiki>/</nowiki>
|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===
{|Border=4
|-
!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===
{|Border=4
|-
!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
 
 
==Declaración e Inicialización de Variables==