Programación funcional: tipos de datos

Un tipo de datos define el tipo de valor que puede tener un objeto y qué operaciones se pueden realizar en él. Un tipo de datos debe declararse primero antes de usarse. Los diferentes lenguajes de programación admiten diferentes tipos de datos. Por ejemplo,

  • C admite char, int, float, long, etc.
  • Python admite cadenas, listas, tuplas, etc.

En un sentido amplio, hay tres tipos de tipos de datos:

  • Fundamental data types- Estos son los tipos de datos predefinidos que el programador utiliza directamente para almacenar solo un valor según el requisito, es decir, tipo entero, tipo de carácter o tipo flotante. Por ejemplo: int, char, float, etc.

  • Derived data types- Estos tipos de datos se derivan del uso de tipos de datos integrados que están diseñados por el programador para almacenar múltiples valores del mismo tipo según sus requisitos. Por ejemplo: matriz, puntero, función, lista, etc.

  • User-defined data types- Estos tipos de datos se derivan del uso de tipos de datos integrados que se envuelven en un solo tipo de datos para almacenar múltiples valores del mismo tipo o de diferente tipo o ambos según el requisito. Por ejemplo: clase, estructura, etc.

Tipos de datos admitidos por C ++

La siguiente tabla enumera los tipos de datos admitidos por C ++:

Tipo de datos Talla Rango
carbonizarse 1 byte -128 a 127 o 0 a 255
char sin firmar 1 byte 0 hasta 255
char firmado 1 byte -128 hasta 127
En t 4 bytes -2147483648 al 2147483647
int sin firmar 4 bytes 0 hasta 4294967295
firmado int 4 bytes -2147483648 al 2147483647
int corto 2 bytes -32768 al 32767
int corto sin firmar 2 bytes 0 hasta 65.535
int corto firmado 2 bytes -32768 al 32767
int largo 4 bytes -2,147,483,648 a 2,147,483,647
firmado largo int 4 bytes -2,147,483,648 a 2,147,483,647
unsigned long int 4 bytes 0 a 4.294.967.295
flotador 4 bytes +/- 3.4e +/- 38 (~ 7 dígitos)
doble 8 bytes +/- 1.7e +/- 308 (~ 15 dígitos)
doble largo 8 bytes +/- 1.7e +/- 308 (~ 15 dígitos)

Tipos de datos admitidos por Java

Los siguientes tipos de datos son compatibles con Java:

Tipo de datos Talla Rango
byte 1 byte -128 hasta 127
carbonizarse 2 bytes 0 hasta 65.536
corto 2 bytes -32.7688 a 32.767
En t 4 bytes -2,147,483,648 a 2,147,483,647
largo 8 bytes -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807
flotador 4 bytes -2147483648 al 2147483647
doble 8 bytes + 9.223 * 1018
Booleano 1 bit Verdadero o falso

Tipos de datos admitidos por Erlang

En esta sección, analizaremos los tipos de datos admitidos por Erlang, que es un lenguaje de programación funcional.

Número

Erlang admite dos tipos de literales numéricos, es decir integer y float. Eche un vistazo al siguiente ejemplo que muestra cómo sumar dos valores enteros:

-module(helloworld).
-export([start/0]). 
start() -> 
   io:fwrite("~w",[5+4]).

Producirá la siguiente salida:

9

Átomo

Un atomes una cadena cuyo valor no se puede cambiar. Debe comenzar con una letra minúscula y puede contener cualquier carácter alfanumérico y caracteres especiales. Cuando un átomo contiene caracteres especiales, debe incluirse entre comillas simples ('). Eche un vistazo al siguiente ejemplo para comprenderlo mejor.

-module(helloworld). 
-export([start/0]). 

start()-> 
   io:fwrite(monday).

Producirá la siguiente salida:

monday

Note- Intente cambiar el átomo a "Lunes" con "M" mayúscula. El programa producirá un error.

Booleano

Este tipo de datos se utiliza para mostrar el resultado como true o false. Eche un vistazo al siguiente ejemplo. Muestra cómo comparar dos números enteros.

-module(helloworld). 
-export([start/0]). 

start() -> 
   io:fwrite(5 =< 9).

Producirá la siguiente salida:

true

Cadena de bits

Se utiliza una cadena de bits para almacenar un área de memoria sin escribir. Eche un vistazo al siguiente ejemplo. Muestra cómo convertir 2 bits de una cadena de bits en una lista.

-module(helloworld). 
-export([start/0]). 

start() -> 
   Bin2 = <<15,25>>, 
   P = binary_to_list(Bin2), 
   io:fwrite("~w",[P]).

Producirá la siguiente salida:

[15,25]

Tupla

Una tupla es un tipo de datos compuestos que tiene un número fijo de términos. Cada término de una tupla se conoce comoelement. El número de elementos es el tamaño de la tupla. El siguiente ejemplo muestra cómo definir una tupla de 5 términos e imprime su tamaño.

-module(helloworld).  
-export([start/0]).  

start() ->  
   K = {abc,50,pqr,60,{xyz,75}} ,  
   io:fwrite("~w",[tuple_size(K)]).

Producirá la siguiente salida:

5

Mapa

Un mapa es un tipo de datos compuesto con un número variable de asociaciones clave-valor. Cada asociación clave-valor en el mapa se conoce comoassociation-pair. loskey y value partes del par se llaman elements. Se dice que el número de pares de asociación es el tamaño del mapa. El siguiente ejemplo muestra cómo definir un mapa de 3 asignaciones e imprimir su tamaño.

-module(helloworld).  
-export([start/0]).  
 
start() ->  
   Map1 = #{name => 'abc',age => 40, gender => 'M'},  
   io:fwrite("~w",[map_size(Map1)]).

Producirá la siguiente salida:

3

Lista

Una lista es un tipo de datos compuestos que tiene un número variable de términos. Cada término de la lista se denomina elemento. Se dice que el número de elementos es la longitud de la lista. El siguiente ejemplo muestra cómo definir una lista de 5 elementos e imprimir su tamaño.

-module(helloworld).  
-export([start/0]).  

start() ->  
   List1 = [10,15,20,25,30] ,  
   io:fwrite("~w",[length(List1)]).

Producirá la siguiente salida:

5

Note - El tipo de datos 'String' no está definido en Erlang.