Programmation fonctionnelle - types de données

Un type de données définit le type de valeur qu'un objet peut avoir et les opérations qui peuvent y être effectuées. Un type de données doit être déclaré avant d'être utilisé. Différents langages de programmation prennent en charge différents types de données. Par exemple,

  • C prend en charge char, int, float, long, etc.
  • Python prend en charge String, List, Tuple, etc.

Au sens large, il existe trois types de types de données -

  • Fundamental data types- Ce sont les types de données prédéfinis qui sont utilisés directement par le programmeur pour stocker une seule valeur selon l'exigence, c'est-à-dire le type entier, le type caractère ou le type flottant. Par exemple - int, char, float, etc.

  • Derived data types- Ces types de données sont dérivés à l'aide de types de données intégrés qui sont conçus par le programmeur pour stocker plusieurs valeurs du même type selon leurs besoins. Par exemple: tableau, pointeur, fonction, liste, etc.

  • User-defined data types- Ces types de données sont dérivés à l'aide de types de données intégrés qui sont enveloppés dans un seul type de données pour stocker plusieurs valeurs du même type ou d'un type différent ou les deux selon l'exigence. Par exemple - Classe, Structure, etc.

Types de données pris en charge par C ++

Le tableau suivant répertorie les types de données pris en charge par C ++ -

Type de données Taille Intervalle
carboniser 1 octet -128 à 127 ou 0 à 255
caractère non signé 1 octet 0 à 255
char signé 1 octet -128 à 127
int 4 octets -2147483648 à 2147483647
entier non signé 4 octets 0 à 4294967295
signé int 4 octets -2147483648 à 2147483647
int court 2 octets -32768 à 32767
int court non signé 2 octets 0 à 65 535
signé court int 2 octets -32768 à 32767
long int 4 octets -2 147 483 648 à 2 147 483 647
signé long int 4 octets -2 147 483 648 à 2 147 483 647
entier long non signé 4 octets 0 à 4 294 967 295
flotte 4 octets +/- 3,4e +/- 38 (~ 7 chiffres)
double 8 octets +/- 1,7e +/- 308 (~ 15 chiffres)
long double 8 octets +/- 1,7e +/- 308 (~ 15 chiffres)

Types de données pris en charge par Java

Les types de données suivants sont pris en charge par Java -

Type de données Taille Intervalle
octet 1 octet -128 à 127
carboniser 2 octets 0 à 65 536
court 2 octets -32.7688 à 32.767
int 4 octets -2 147 483 648 à 2 147 483 647
longue 8 octets -9,223,372,036,854,775,808 à 9,223,372,036,854,775,807
flotte 4 octets -2147483648 à 2147483647
double 8 octets + 9,223 * 1018
Booléen 1 bit Vrai ou faux

Types de données pris en charge par Erlang

Dans cette section, nous discuterons des types de données pris en charge par Erlang, qui est un langage de programmation fonctionnel.

Nombre

Erlang prend en charge deux types de littéraux numériques, à savoir integer et float. Jetez un œil à l'exemple suivant qui montre comment ajouter deux valeurs entières -

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

Il produira la sortie suivante -

9

Atome

Un atomest une chaîne dont la valeur ne peut pas être modifiée. Il doit commencer par une lettre minuscule et peut contenir des caractères alphanumériques et des caractères spéciaux. Lorsqu'un atome contient des caractères spéciaux, il doit être placé entre guillemets simples ('). Jetez un œil à l'exemple suivant pour mieux comprendre.

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

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

Il produira la sortie suivante -

monday

Note- Essayez de changer l'atome en "Lundi" avec un "M" majuscule. Le programme produira une erreur.

Booléen

Ce type de données est utilisé pour afficher le résultat soit true ou false. Jetez un œil à l'exemple suivant. Il montre comment comparer deux entiers.

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

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

Il produira la sortie suivante -

true

Chaîne de bits

Une chaîne de bits est utilisée pour stocker une zone de mémoire non typée. Jetez un œil à l'exemple suivant. Il montre comment convertir 2 bits d'une chaîne de bits en une liste.

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

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

Il produira la sortie suivante -

[15,25]

Tuple

Un tuple est un type de données composé ayant un nombre fixe de termes. Chaque terme d'un tuple est appeléelement. Le nombre d'éléments correspond à la taille du tuple. L'exemple suivant montre comment définir un tuple de 5 termes et imprime sa taille.

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

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

Il produira la sortie suivante -

5

Carte

Une carte est un type de données composé avec un nombre variable d'associations clé-valeur. Chaque association clé-valeur de la carte est appeléeassociation-pair. lekey et value les parties de la paire sont appelées elements. On dit que le nombre de paires d'associations est la taille de la carte. L'exemple suivant montre comment définir une carte de 3 mappages et imprimer sa taille.

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

Il produira la sortie suivante -

3

liste

Une liste est un type de données composé ayant un nombre variable de termes. Chaque terme de la liste est appelé un élément. On dit que le nombre d'éléments est la longueur de la liste. L'exemple suivant montre comment définir une liste de 5 éléments et imprimer sa taille.

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

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

Il produira la sortie suivante -

5

Note - Le type de données 'String' n'est pas défini dans Erlang.