aprendiendo ( Erlang ).

lunes, 21 de marzo de 2011

Tuplas

| 0 comentarios |

Suponga por un momento que deseamos crear un grupo fijo de elementos en una simple entidad. Para ello, tenemos las tuplas que como ya se comento en el post sobre Tipos básicos: Se trata de un grupo de elementos o términos fijos y tiene la siguiente sintaxis; {Term1,...,TermN}. Esta tupla tiene tamaño N.
Erlang R13B03 (erts-5.7.4) [source] [64-bit] [rq:1] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
1> Persona = {pedro, 32, {23,agosto,1993}}.
{pedro,32,{23,agosto,1993}}
2> tuple_size(Persona).
3
3> 
En el ejemplo anterior tenemos un ejemplo de como crear una tupla (línea 1) y como obtener el tamaño de la misma.
Una tupla es creada automáticamente cuando la declaramos y se destruye cuando lleva mucho tiempo sin usarse. Siendo recolectado posteriormente por el recolector de basura de Erlang. Si, señores, Erlang también tiene un recolector de basura, por lo que, no tenemos que preocuparnos de ella.
Si deseamos acceder a los datos almacenados en una tupla tenemos dos alternativas. Mediante la clausula element podemos acceder a los datos por la posición (como podemos ver en las líneas 2, 3 y 4) o mediante el uso de pattern matching (como se puede observar en la línea 7).
Erlang R13B03 (erts-5.7.4) [source] [64-bit] [rq:1] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
1> Persona = {pedro, 32, {23,agosto,1993}}.
{pedro,32,{23,agosto,1993}}
2> Nombre = element(1, Persona).
pedro
3> Edad = element(2, Persona).
32
4> Fecha = element(3, Persona).
{23,agosto,1993}
5> f().                        
ok
6> Persona = {pedro, 32, {23,agosto,1993}}.
{pedro,32,{23,agosto,1993}}
7> {Nombre, Edad, Fecha}=Persona.          
{pedro,32,{23,agosto,1993}}
8> Nombre.
pedro
9> Edad.
32
10> Fecha.
{23,agosto,1993}
11> 
La tupla es un tipo con una ideología muy básica y sencilla de entender pero muy versátil como veremos más adelante.

Publicar un comentario en la entrada

0 comentarios:

 
Licencia Creative Commons
Aprendiendo Erlang por Verdi se encuentra bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 3.0 Unported.