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.