Programmazione funzionale - Tupla

Una tupla è un tipo di dati composto con un numero fisso di termini. Ogni termine in una tupla è noto comeelement. Il numero di elementi è la dimensione della tupla.

Programma per definire una tupla in C #

Il programma seguente mostra come definire una tupla di quattro termini e stamparli utilizzando C #, che è un linguaggio di programmazione orientato agli oggetti.

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);    
   } 
}

Produrrà il seguente output:

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

Programma per definire una tupla in Erlang

Il seguente programma mostra come definire una tupla di quattro termini e stamparli usando Erlang, che è un linguaggio di programmazione funzionale.

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

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

Produrrà il seguente output:

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

Vantaggi di Tuple

Le tuple offrono i seguenti vantaggi:

  • Le tuple hanno una dimensione fine in natura, cioè non possiamo aggiungere / eliminare elementi a / da una tupla.

  • Possiamo cercare qualsiasi elemento in una tupla.

  • Le tuple sono più veloci degli elenchi, perché hanno un insieme di valori costante.

  • Le tuple possono essere utilizzate come chiavi del dizionario, perché contengono valori immutabili come stringhe, numeri, ecc.

Tuple vs elenchi

Tupla Elenco
Le tuple sono immutable, cioè, non possiamo aggiornare i suoi dati. Elenco sono mutable, cioè possiamo aggiornare i suoi dati.
Gli elementi in una tupla possono essere di tipo diverso. Tutti gli elementi in un elenco sono dello stesso tipo.
Le tuple sono indicate da parentesi tonde attorno agli elementi. Gli elenchi sono indicati da parentesi quadre attorno agli elementi.

Operazioni su tuple

In questa sezione, discuteremo alcune operazioni che possono essere eseguite su una tupla.

Controlla se un valore inserito è una tupla o meno

Il metodo is_tuple(tuplevalues)viene utilizzato per determinare se un valore inserito è una tupla o meno. Ritornatrue quando un valore inserito è una tupla, altrimenti ritorna false. Per esempio,

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

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

Produrrà il seguente output:

True

Conversione di un elenco in una tupla

Il metodo list_to_tuple(listvalues)converte una lista in una tupla. Per esempio,

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

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

Produrrà il seguente output:

{1, 2, 3, 4, 5}

Conversione di una tupla in un elenco

Il metodo tuple_to_list(tuplevalues)converte una tupla specificata nel formato elenco. Per esempio,

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

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

Produrrà il seguente output:

[1, 2, 3, 4, 5]

Controlla la dimensione della tupla

Il metodo tuple_size(tuplename)restituisce la dimensione di una tupla. Per esempio,

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

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

Produrrà il seguente output:

5