Programação Funcional - Tipos de Dados

Um tipo de dados define o tipo de valor que um objeto pode ter e quais operações podem ser executadas nele. Um tipo de dados deve ser declarado antes de ser usado. Diferentes linguagens de programação oferecem suporte a diferentes tipos de dados. Por exemplo,

  • C suporta char, int, float, long, etc.
  • Python suporta String, List, Tuple, etc.

Em um sentido amplo, existem três tipos de tipos de dados -

  • Fundamental data types- Esses são os tipos de dados predefinidos que são usados ​​pelo programador diretamente para armazenar apenas um valor de acordo com o requisito, ou seja, tipo inteiro, tipo de caractere ou tipo flutuante. Por exemplo - int, char, float, etc.

  • Derived data types- Esses tipos de dados são derivados usando tipo de dados embutido que são projetados pelo programador para armazenar vários valores do mesmo tipo de acordo com seus requisitos. Por exemplo - Array, Pointer, function, list, etc.

  • User-defined data types- Esses tipos de dados são derivados usando tipos de dados integrados que são agrupados em um único tipo de dados para armazenar vários valores do mesmo tipo ou de tipo diferente, ou ambos, conforme o requisito. Por exemplo - Classe, Estrutura, etc.

Tipos de dados suportados por C ++

A tabela a seguir lista os tipos de dados suportados por C ++ -

Tipo de dados Tamanho Alcance
Caracteres 1 byte -128 a 127 ou 0 a 255
caracter não identifcado 1 byte 0 a 255
char assinado 1 byte -128 a 127
int 4 bytes -2147483648 a 2147483647
int sem sinal 4 bytes 0 a 4294967295
int assinado 4 bytes -2147483648 a 2147483647
curto int 2 bytes -32768 a 32767
int curto sem sinal 2 bytes 0 a 65.535
int curto assinado 2 bytes -32768 a 32767
longo int 4 bytes -2.147.483.648 a 2.147.483.647
assinado longo int 4 bytes -2.147.483.648 a 2.147.483.647
int longo sem sinal 4 bytes 0 a 4.294.967.295
flutuador 4 bytes +/- 3,4e +/- 38 (~ 7 dígitos)
em dobro 8 bytes +/- 1,7e +/- 308 (~ 15 dígitos)
longo duplo 8 bytes +/- 1,7e +/- 308 (~ 15 dígitos)

Tipos de dados suportados por Java

Os seguintes tipos de dados são suportados por Java -

Tipo de dados Tamanho Alcance
byte 1 byte -128 a 127
Caracteres 2 bytes 0 a 65.536
baixo 2 bytes -32.7688 a 32.767
int 4 bytes -2.147.483.648 a 2.147.483.647
longo 8 bytes -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807
flutuador 4 bytes -2147483648 a 2147483647
em dobro 8 bytes + 9,223 * 1018
boleano 1 bit Verdadeiro ou falso

Tipos de dados suportados por Erlang

Nesta seção, discutiremos os tipos de dados suportados por Erlang, que é uma linguagem de programação funcional.

Número

Erlang suporta dois tipos de literais numéricos, ou seja, integer e float. Dê uma olhada no exemplo a seguir que mostra como adicionar dois valores inteiros -

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

Ele produzirá a seguinte saída -

9

Átomo

A atomé uma string cujo valor não pode ser alterado. Deve começar com uma letra minúscula e pode conter quaisquer caracteres alfanuméricos e especiais. Quando um átomo contém caracteres especiais, ele deve ser colocado entre aspas simples ('). Dê uma olhada no exemplo a seguir para entender melhor.

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

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

Ele produzirá a seguinte saída -

monday

Note- Tente mudar o átomo para "segunda-feira" com "M" maiúsculo. O programa produzirá um erro.

boleano

Este tipo de dados é usado para exibir o resultado como true ou false. Dê uma olhada no exemplo a seguir. Mostra como comparar dois inteiros.

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

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

Ele produzirá a seguinte saída -

true

String de bits

Uma string de bits é usada para armazenar uma área de memória não digitada. Dê uma olhada no exemplo a seguir. Mostra como converter 2 bits de uma string de bits em uma lista.

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

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

Ele produzirá a seguinte saída -

[15,25]

Tupla

Uma tupla é um tipo de dados composto com um número fixo de termos. Cada termo de uma tupla é conhecido como umelement. O número de elementos é o tamanho da tupla. O exemplo a seguir mostra como definir uma tupla de 5 termos e imprime seu tamanho.

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

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

Ele produzirá a seguinte saída -

5

Mapa

Um mapa é um tipo de dados composto com um número variável de associações de valores-chave. Cada associação de valor-chave no mapa é conhecida como umassociation-pair. okey e value partes do par são chamadas elements. O número de pares de associação é o tamanho do mapa. O exemplo a seguir mostra como definir um mapa de 3 mapeamentos e imprimir seu tamanho.

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

Ele produzirá a seguinte saída -

3

Lista

Uma lista é um tipo de dados composto com um número variável de termos. Cada termo da lista é chamado de elemento. Diz-se que o número de elementos é o comprimento da lista. O exemplo a seguir mostra como definir uma lista de 5 itens e imprimir seu tamanho.

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

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

Ele produzirá a seguinte saída -

5

Note - O tipo de dados 'String' não está definido em Erlang.