Programação Funcional - Tupla

Uma tupla é um tipo de dados composto com um número fixo de termos. Cada termo em uma tupla é conhecido como umelement. O número de elementos é o tamanho da tupla.

Programa para definir uma tupla em C #

O programa a seguir mostra como definir uma tupla de quatro termos e imprimi-los usando C #, que é uma linguagem de programação orientada a objetos.

using System; 
public class Test { 
   public static void Main() { 
      var t1 = Tuple.Create(1, 2, 3, new Tuple<int, int>(4, 5));   
      Console.WriteLine("Tuple:" + t1);    
   } 
}

Ele produzirá a seguinte saída -

Tuple :(1, 2, 3, (4, 5))

Programa para definir uma tupla em Erlang

O programa a seguir mostra como definir uma tupla de quatro termos e imprimi-los usando Erlang, que é uma linguagem de programação funcional.

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

start() -> 
   P = {1,2,3,{4,5}} ,  
   io:fwrite("~w",[P]).

Ele produzirá a seguinte saída -

{1, 2, 3, {4, 5}}

Vantagens da Tupla

As tuplas oferecem as seguintes vantagens -

  • As tuplas têm tamanho definido na natureza, ou seja, não podemos adicionar / excluir elementos de / para uma tupla.

  • Podemos pesquisar qualquer elemento em uma tupla.

  • Tuplas são mais rápidas do que listas, porque têm um conjunto constante de valores.

  • Tuplas podem ser usadas como chaves de dicionário, porque contêm valores imutáveis ​​como strings, números, etc.

Tuplas vs listas

Tupla Lista
Tuplas são immutable, ou seja, não podemos atualizar seus dados. Lista são mutable, ou seja, podemos atualizar seus dados.
Os elementos em uma tupla podem ser de tipos diferentes. Todos os elementos de uma lista são do mesmo tipo.
As tuplas são denotadas por parênteses arredondados ao redor dos elementos. As listas são denotadas por colchetes ao redor dos elementos.

Operações em tuplas

Nesta seção, discutiremos algumas operações que podem ser realizadas em uma tupla.

Verifique se um valor inserido é uma tupla ou não

O método is_tuple(tuplevalues)é usado para determinar se um valor inserido é uma tupla ou não. Retornatrue quando um valor inserido é uma tupla, senão ele retorna false. Por exemplo,

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

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

Ele produzirá a seguinte saída -

True

Convertendo uma lista em uma tupla

O método list_to_tuple(listvalues)converte uma lista em uma tupla. Por exemplo,

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

start() ->  
   io:fwrite("~w",[list_to_tuple([1,2,3,4,5])]).

Ele produzirá a seguinte saída -

{1, 2, 3, 4, 5}

Convertendo uma tupla em uma lista

O método tuple_to_list(tuplevalues)converte uma tupla especificada em formato de lista. Por exemplo,

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

start() ->  
   io:fwrite("~w",[tuple_to_list({1,2,3,4,5})]).

Ele produzirá a seguinte saída -

[1, 2, 3, 4, 5]

Verifique o tamanho da tupla

O método tuple_size(tuplename)retorna o tamanho de uma tupla. Por exemplo,

-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