Porównanie języków programowania (programowanie funkcyjne)

Ta strona zawiera tabele porównawcze funkcjonalnych instrukcji programowania między językami programowania. Porównanie podstawowych instrukcji imperatywnego paradygmatu zapewnia porównanie podstawowych instrukcji .

Operacje na liście

Aplikacje funkcyjne i listy

Dla zwięzłości słowa te będą miały określone znaczenie w poniższych tabelach (chyba że zaznaczono, że są częścią składni języka):

funcN
Funkcja. Może być jednoargumentowy lub n-arny (lub zawsze jednoargumentowy dla języków bez funkcji n-arnych).
func1 , func2 , itd.
funkcje o określonej liczbie argumentów. func (bez numeru) to to samo co func1 , w wielu językach znane również jako projekcja .
pred
Funkcja jednoargumentowa zwracająca wartość logiczną. ( ML : 'a -> bool ) (typ podobny do C: bool pred<T>(T t) ).
lista
Lista, na której się operuje.
args
Lista oddzielonych przecinkami nazw jednego lub więcej argumentów, w postaci arg1, arg2, ..., argn .
wzór
Wzór w językach z dopasowywaniem wzorców .
val
Dowolna odpowiednia wartość, w zależności od kontekstu.
lambda tożsamości lambda mapa stosować filtr zginać suma
Pyton lambda x: x argumenty lambda: wyr map(funkcja, lista) nfunkcja(*argumenty) filtr(pred, lista) functools.reduce(funkcja2, lista) suma (lista)
Matematyka #& (wyrażenie)& (argumenty to #1 , #2 itd.)

Funkcja[{argumenty},wyr]

Mapa[funkcja, lista]

func /@ lista

Zastosuj[nfunkcja, argumenty]

nfunc@@args

Wybierz [lista, pred] Fold[funkcja2, wartość, lista] Zastosuj[Plus, lista]

Plus@@lista

C# x => x (argumenty) => wyr Enumerable.Select(list, func) Wymaga refleksji Enumerable.Where(list, pred) Enumerable.Aggregate(list, func2)

Enumerable.Aggregate(list, val, func2)

Enumerable.Sum(lista)

Enumerable.Sum(lista, func)

Visual Basic .NET Funkcja(x) x Funkcja(argumenty) wyraż
F # (można również użyć Enumerable) identyfikator (wbudowany)

zabawa x -> x

zabawny wzór -> wyr Lista funkcji Seq.map Seq.filter lista pred Seq.fold func2 val lista Lista sum sekw

Seq.sumBy lista func

Operacje numeryczne na listach

comp
funkcja binarna, która zwraca wartość wskazującą kolejność sortowania (liczba całkowita w większości języków).
sortować maks min
Pyton posortowane (lista) maks(lista) min(lista)
Matematyka Sortuj[lista] Maks.[lista] min[lista]
C# Enumerable.OrderBy(lista, comp) Enumerable.Max(lista, func) Enumerable.Min(lista, func)
Visual Basic .NET
F# Sortuj według kolejności

Seq.sortBy lista porównawcza

sek.maks

seq.maxBy lista func

sek. min

seq.minWedług listy func

Iteracje na listach

Grupuj według
Pyton itertools.groupby(lista, funkcja)
Matematyka Grupuj według[lista, funkcja]
C# Enumerable.GroupBy(lista, func)
Visual Basic .NET
F# seq.groupBy lista func

Generowanie zestawień za pomocą narzędzi kombinatoryki

rozpocznij
pierwszą wartość zakresu.
skokowy
przyrost zakresu.
policz
liczbę elementów w zakresie.
ostatnia
włącznie ostatnia wartość zakresu.
koniec
wyłącznej ostatniej wartości zakresu.
Generuj zasięg (leniwie) Nieskończony zasięg (leniwie)
Pyton xrange(początek, koniec, krok) (Python 2)

zakres (początek, koniec, krok) (Python 3)

itertools.count(start, krok)
C# Enumerable.Range(początek, liczba) Enumerable.Range(start, Int32.MaxValue)
Visual Basic .NET
F# seq { start..krok..ostatni } Seq.initInfinite func