Programmazione funzionale - Tipi di dati

Un tipo di dati definisce il tipo di valore che un oggetto può avere e quali operazioni possono essere eseguite su di esso. Un tipo di dati deve essere dichiarato prima di essere utilizzato. Diversi linguaggi di programmazione supportano diversi tipi di dati. Per esempio,

  • C supporta char, int, float, long, ecc.
  • Python supporta String, List, Tuple, ecc.

In senso lato, ci sono tre tipi di tipi di dati:

  • Fundamental data types- Questi sono i tipi di dati predefiniti che vengono utilizzati direttamente dal programmatore per memorizzare un solo valore secondo il requisito, ad esempio, tipo intero, tipo di carattere o tipo mobile. Ad esempio: int, char, float, ecc.

  • Derived data types- Questi tipi di dati vengono derivati ​​utilizzando un tipo di dati integrato progettato dal programmatore per memorizzare più valori dello stesso tipo secondo i loro requisiti. Ad esempio: matrice, puntatore, funzione, elenco, ecc.

  • User-defined data types- Questi tipi di dati sono derivati ​​utilizzando tipi di dati incorporati che sono racchiusi in un unico tipo di dati per memorizzare più valori dello stesso tipo o di tipo diverso o entrambi secondo il requisito. Ad esempio: Classe, Struttura, ecc.

Tipi di dati supportati da C ++

La tabella seguente elenca i tipi di dati supportati da C ++ -

Tipo di dati Taglia Gamma
char 1 byte Da -128 a 127 o da 0 a 255
carattere non firmato 1 byte Da 0 a 255
firmato char 1 byte Da -128 a 127
int 4 byte -2147483648 a 2147483647
unsigned int 4 byte 0 a 4294967295
firmato int 4 byte -2147483648 a 2147483647
short int 2 byte Da -32768 a 32767
int breve senza segno 2 byte Da 0 a 65.535
firmato breve int 2 byte Da -32768 a 32767
lungo int 4 byte -2.147.483.648 a 2.147.483.647
firmato lungo int 4 byte -2.147.483.648 a 2.147.483.647
unsigned long int 4 byte Da 0 a 4.294.967.295
galleggiante 4 byte +/- 3,4e +/- 38 (~ 7 cifre)
Doppio 8 byte +/- 1.7e +/- 308 (~ 15 cifre)
doppio lungo 8 byte +/- 1.7e +/- 308 (~ 15 cifre)

Tipi di dati supportati da Java

I seguenti tipi di dati sono supportati da Java:

Tipo di dati Taglia Gamma
byte 1 byte Da -128 a 127
char 2 byte Da 0 a 65.536
corto 2 byte Da -32.7688 a 32.767
int 4 byte -2.147.483.648 a 2.147.483.647
lungo 8 byte -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807
galleggiante 4 byte -2147483648 a 2147483647
Doppio 8 byte + 9.223 * 1018
Booleano 1 bit Vero o falso

Tipi di dati supportati da Erlang

In questa sezione, discuteremo i tipi di dati supportati da Erlang, che è un linguaggio di programmazione funzionale.

Numero

Erlang supporta due tipi di letterali numerici, ie integer e float. Dai un'occhiata al seguente esempio che mostra come aggiungere due valori interi:

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

Produrrà il seguente output:

9

Atomo

Un atomè una stringa il cui valore non può essere modificato. Deve iniziare con una lettera minuscola e può contenere qualsiasi carattere alfanumerico e carattere speciale. Quando un atomo contiene caratteri speciali, dovrebbe essere racchiuso tra virgolette singole ('). Dai un'occhiata al seguente esempio per capire meglio.

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

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

Produrrà il seguente output:

monday

Note- Prova a cambiare l'atomo in "Monday" con la "M" maiuscola. Il programma produrrà un errore.

Booleano

Questo tipo di dati viene utilizzato per visualizzare il risultato come entrambi true o false. Dai un'occhiata al seguente esempio. Mostra come confrontare due numeri interi.

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

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

Produrrà il seguente output:

true

Stringa di bit

Una stringa di bit viene utilizzata per memorizzare un'area di memoria non tipizzata. Dai un'occhiata al seguente esempio. Mostra come convertire 2 bit di una stringa di bit in un elenco.

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

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

Produrrà il seguente output:

[15,25]

Tupla

Una tupla è un tipo di dati composto con un numero fisso di termini. Ogni termine di una tupla è noto comeelement. Il numero di elementi è la dimensione della tupla. L'esempio seguente mostra come definire una tupla di 5 termini e ne stampa la dimensione.

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

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

Produrrà il seguente output:

5

Carta geografica

Una mappa è un tipo di dati composto con un numero variabile di associazioni valore-chiave. Ogni associazione valore-chiave nella mappa è nota comeassociation-pair. Ilkey e value vengono chiamate parti della coppia elements. Si dice che il numero di coppie di associazioni sia la dimensione della mappa. L'esempio seguente mostra come definire una mappa di 3 mappature e stamparne le dimensioni.

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

Produrrà il seguente output:

3

Elenco

Un elenco è un tipo di dati composto con un numero variabile di termini. Ogni termine nell'elenco è chiamato elemento. Si dice che il numero di elementi sia la lunghezza dell'elenco. L'esempio seguente mostra come definire un elenco di 5 elementi e stamparne le dimensioni.

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

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

Produrrà il seguente output:

5

Note - Il tipo di dati "String" non è definito in Erlang.