Programación en Erlang/Tipos de datos fundamentales disponibles en el lenguaje

Condiciones editar

Un pedazo de datos de cualquier tipo de datos se llama un término.

Números editar

Hay dos tipos de literales numéricos, enteros y carrozas. Además de la notación convencional, hay dos Erlang-notaciones específicas:

  • $ Char

El valor ASCII de los caracteres de caracteres.

    1. base de valor

Entero con la base de base, que debe ser un entero en el rango de 2 .. 36.

Atoms editar

Un átomo es un literal, una constante con nombre. Un átomo debe estar entre comillas simples ( ') si no empiezan con una letra minúscula o si contiene caracteres que no sean caracteres alfanuméricos, guiones bajos (_), o @.

Bit Cuerdas y Binarios editar

Una cadena de bits que se utiliza para almacenar un área de memoria sin tipo. Cadenas se expresan mediante la sintaxis de bits. Las cadenas de bits que consta de un número de bits que es divisible por ocho son llamados Binarios

Referencia editar

Una referencia es un término que es único en un sistema de tiempo de ejecución de Erlang, creado por llamar make_ref / 0.

Fun editar

Funs hacer posible la creación de una función anónima y pasa a la función por si misma - no su nombre - como argumento a otras funciones.

Ejemplos:

 1> Fun1 = fun (X) -> X+1 end.
 #Fun<erl_eval.6.39074546>
 2> Fun1(2).
 3

Tupla editar

Compuesto de tipo de datos con un número fijo de términos:

{Term1,...,TermN} Término1 ,..., TermN () 

Cada término de duración en la tupla se llama un elemento. El número de elementos se dice que es el tamaño de la tupla. Existe un número de BIFS para manipular tuplas.

Lista editar

Compuesto de tipo de datos con un número variable de los términos.

[Term1,...,TermN] [Término1 ,..., TermN] 

Cada término de término de la lista se llama un elemento. El número de elementos se dice que es la longitud de la lista. Formalmente, la lista es o bien la lista vacía [] o consista en una cabeza (primer elemento) y una cola (el resto de la lista) que también es una lista. Este último puede ser expresado como [H | T]. La notación [término1 ,..., TermN] anterior es en realidad la abreviatura de la lista [término1 |[...|[ TermN |[]]]].

Ejemplo:

[] Es una lista, por lo tanto
[c | []] es una lista, por lo tanto
[b | [c |[]]] es una lista, por lo tanto
[a,b,c] . [a | [b | [c |[]]]] es una lista, o en definitiva [a, b, c].

Una lista en la cola es una lista se llama a veces una lista adecuada. Se permite tener una lista en la que la cola no es una lista, por ejemplo, [a | b]. Sin embargo, este tipo de lista es de poca utilidad práctica.

Ejemplos:

 1> L1 = [a, 2, (c, 4)]. [A, 2, (c, 4)] 2> [H | T] = L1. [A, 2, (c, 4)] 3> H. de 4> T. [2, (c, 4)] 5> L2 = [d | T]. [d, 2, (c, 4)] 
 6> longitud (L1). 3 7> longitud ([ ]). 0 

Una colección de funciones de procesamiento de la lista se puede encontrar en las listas stdlib módulo.

String editar

Las cadenas se escriben entre comillas ( "), pero no es un tipo de datos en Erlang. En lugar de una cadena" Hola "es la abreviatura de la lista [e $ $ h,, $ l, l $, $ o], que es [ 104.101.108.108.111]. Dos cadenas literales adyacentes se concatenan en una sola. Esto se hace en tiempo de compilación y no incurrir en gastos de tiempo de ejecución.

Ejemplo:

"string" "42" "cadena" "42" es equivalente a "string42" "string42"

Registro editar

Un registro es una estructura de datos para almacenar un número fijo de elementos. Sin embargo, registro no es un tipo de datos real. Las expresiones de registro son traducidos a tupla expresiones durante la compilación. Por lo tanto, las expresiones de registro no son comprendidos por el depósito si no se adoptan medidas especiales.

  -module (persona).
  -export ([new/2]).
  
  registro (persona, (nombre, edad)).
  
  nuevo (nombre, edad) -> 
        # (name = Nombre de la persona, edad = edad).
  1> persona:nuevo(Ernie,44).
  (persona,Ernie,44)

Boolean editar

No hay ningún tipo de datos Boolean en Erlang. En cambio los átomos de verdadero y falso se usa para designar a los valores booleanos.