Programowanie funkcjonalne - krotka
Krotka to złożony typ danych, który ma stałą liczbę terminów. Każdy termin w krotce jest znany jakoelement. Liczba elementów to rozmiar krotki.
Program do definiowania krotki w C #
Poniższy program pokazuje, jak zdefiniować krotkę czterech terminów i wydrukować je przy użyciu języka C #, który jest zorientowanym obiektowo językiem programowania.
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);
}
}
Wytworzy następujący wynik -
Tuple :(1, 2, 3, (4, 5))
Program do definiowania krotki w Erlang
Poniższy program pokazuje, jak zdefiniować krotkę czterech terminów i wydrukować je za pomocą Erlang, który jest funkcjonalnym językiem programowania.
-module(helloworld).
-export([start/0]).
start() ->
P = {1,2,3,{4,5}} ,
io:fwrite("~w",[P]).
Wytworzy następujący wynik -
{1, 2, 3, {4, 5}}
Zalety Tuple
Krotki mają następujące zalety -
Krotki mają z natury określony rozmiar, tzn. Nie możemy dodawać / usuwać elementów do / z krotki.
Możemy przeszukiwać dowolny element w krotce.
Krotki są szybsze niż listy, ponieważ mają stały zestaw wartości.
Krotki mogą być używane jako klucze słownikowe, ponieważ zawierają niezmienne wartości, takie jak łańcuchy, liczby itp.
Krotki a listy
Tuple | Lista |
---|---|
Krotki są immutabletj. nie możemy zaktualizować jego danych. | Lista jest mutableczyli możemy aktualizować jego dane. |
Elementy w krotce mogą być różnego typu. | Wszystkie elementy na liście są tego samego typu. |
Krotki są oznaczone okrągłymi nawiasami wokół elementów. | Listy są oznaczone nawiasami kwadratowymi wokół elementów. |
Operacje na krotkach
W tej sekcji omówimy kilka operacji, które można wykonać na krotce.
Sprawdź, czy wstawiona wartość jest krotką, czy nie
Metoda is_tuple(tuplevalues)służy do określenia, czy wstawiona wartość jest krotką, czy nie. Wracatrue gdy wstawiana wartość jest krotką, w przeciwnym razie zwraca false. Na przykład,
-module(helloworld).
-export([start/0]).
start() ->
K = {abc,50,pqr,60,{xyz,75}} , io:fwrite("~w",[is_tuple(K)]).
Wytworzy następujący wynik -
True
Konwersja listy na krotkę
Metoda list_to_tuple(listvalues)konwertuje listę na krotkę. Na przykład,
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite("~w",[list_to_tuple([1,2,3,4,5])]).
Wytworzy następujący wynik -
{1, 2, 3, 4, 5}
Konwersja krotki na listę
Metoda tuple_to_list(tuplevalues)konwertuje określoną krotkę na format listy. Na przykład,
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite("~w",[tuple_to_list({1,2,3,4,5})]).
Wytworzy następujący wynik -
[1, 2, 3, 4, 5]
Sprawdź rozmiar krotki
Metoda tuple_size(tuplename)zwraca rozmiar krotki. Na przykład,
-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