Programowanie funkcjonalne - typy danych

Typ danych definiuje typ wartości, jaką obiekt może mieć i jakie operacje można na nim wykonać. Typ danych należy najpierw zadeklarować przed użyciem. Różne języki programowania obsługują różne typy danych. Na przykład,

  • C obsługuje znaki char, int, float, long itp.
  • Python obsługuje ciągi, listy, krotki itp.

W szerokim sensie istnieją trzy typy typów danych -

  • Fundamental data types- Są to predefiniowane typy danych, które są używane przez programistę bezpośrednio do przechowywania tylko jednej wartości zgodnie z wymaganiami, tj. Typ całkowity, typ znakowy lub typ zmiennoprzecinkowy. Na przykład - int, char, float itp.

  • Derived data types- Te typy danych są wyprowadzane przy użyciu wbudowanych typów danych, które zostały zaprojektowane przez programistę do przechowywania wielu wartości tego samego typu zgodnie z ich wymaganiami. Na przykład - tablica, wskaźnik, funkcja, lista itp.

  • User-defined data types- Te typy danych są wyprowadzane przy użyciu wbudowanych typów danych, które są opakowane w jeden typ danych w celu przechowywania wielu wartości tego samego lub innego typu lub obu, zgodnie z wymaganiami. Na przykład - klasa, struktura itp.

Typy danych obsługiwane przez C ++

W poniższej tabeli wymieniono typy danych obsługiwane przez C ++ -

Typ danych Rozmiar Zasięg
zwęglać 1 bajt -128 do 127 lub 0 do 255
unsigned char 1 bajt Od 0 do 255
podpisany char 1 bajt -128 do 127
int 4 bajty Od -2147483648 do 2147483647
unsigned int 4 bajty 0 do 4294967295
podpisany int 4 bajty Od -2147483648 do 2147483647
krótki int 2 bajty -32768 do 32767
unsigned short int 2 bajty 0 do 65 535
podpisany krótki int 2 bajty -32768 do 32767
długi int 4 bajty -2 147 483 648 do 2 147 483 647
podpisany długi int 4 bajty -2 147 483 648 do 2 147 483 647
unsigned long int 4 bajty Od 0 do 4 294 967 295
pływak 4 bajty +/- 3,4e +/- 38 (~ 7 cyfr)
podwójnie 8 bajtów +/- 1,7e +/- 308 (~ 15 cyfr)
długie podwójne 8 bajtów +/- 1,7e +/- 308 (~ 15 cyfr)

Typy danych obsługiwane przez Javę

Java obsługuje następujące typy danych -

Typ danych Rozmiar Zasięg
bajt 1 bajt -128 do 127
zwęglać 2 bajty Od 0 do 65 536
krótki 2 bajty -32,7688 do 32767
int 4 bajty -2 147 483 648 do 2 147 483 647
długo 8 bajtów -9.223.372.036.854.775.808 do 9.223.372.036.854.775.807
pływak 4 bajty Od -2147483648 do 2147483647
podwójnie 8 bajtów + 9,223 * 1018
Boolean 1 bit Prawda czy fałsz

Typy danych obsługiwane przez Erlang

W tej sekcji omówimy typy danych obsługiwane przez Erlang, który jest funkcjonalnym językiem programowania.

Numer

Erlang obsługuje dwa typy literałów numerycznych, tj integer i float. Spójrz na poniższy przykład, który pokazuje, jak dodać dwie wartości całkowite -

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

Wytworzy następujące dane wyjściowe -

9

Atom

Na atomto ciąg, którego wartości nie można zmienić. Musi zaczynać się od małej litery i może zawierać dowolne znaki alfanumeryczne i specjalne. Kiedy atom zawiera znaki specjalne, powinien być ujęty w pojedyncze cudzysłowy ('). Spójrz na poniższy przykład, aby lepiej zrozumieć.

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

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

Wytworzy następujący wynik -

monday

Note- Spróbuj zmienić atom na „poniedziałek” przez duże „M”. Program wyświetli błąd.

Boolean

Ten typ danych służy do wyświetlania wyniku jako albo true lub false. Spójrz na poniższy przykład. Pokazuje, jak porównać dwie liczby całkowite.

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

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

Wytworzy następujący wynik -

true

Ciąg bitów

Łańcuch bitowy jest używany do przechowywania obszaru niewpisanej pamięci. Spójrz na poniższy przykład. Pokazuje, jak przekonwertować 2 bity ciągu bitowego na listę.

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

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

Wytworzy następujący wynik -

[15,25]

Tuple

Krotka to złożony typ danych o stałej liczbie terminów. Każdy termin krotki jest znany jakoelement. Liczba elementów to rozmiar krotki. Poniższy przykład pokazuje, jak zdefiniować krotkę 5 terminów i wydrukować jej rozmiar.

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

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

Wytworzy następujący wynik -

5

Mapa

Mapa to złożony typ danych ze zmienną liczbą skojarzeń klucz-wartość. Każde skojarzenie klucz-wartość na mapie jest znane jakoassociation-pair. Plikkey i value nazywane są części pary elements. Mówi się, że liczba par asocjacji jest wielkością mapy. Poniższy przykład pokazuje, jak zdefiniować mapę 3 mapowań i wydrukować jej rozmiar.

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

Wytworzy następujący wynik -

3

Lista

Lista to złożony typ danych zawierający zmienną liczbę terminów. Każdy termin na liście nazywany jest elementem. O liczbie elementów mówi się, że jest długością listy. Poniższy przykład pokazuje, jak zdefiniować listę 5 pozycji i wydrukować jej rozmiar.

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

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

Wytworzy następujący wynik -

5

Note - Typ danych „String” nie jest zdefiniowany w Erlang.