Comparação de linguagens de programação (programação funcional) - Comparison of programming languages (functional programming)

Esta página fornece as tabelas de comparação de instruções de programação funcional entre linguagens de programação. A comparação de instruções básicas do paradigma imperativo é fornecida pela comparação de instruções básicas .

Operações de lista

Aplicativos e listas de funções

Para resumir, essas palavras terão os significados especificados nas tabelas a seguir (a menos que seja indicado como parte da sintaxe da linguagem):

funcN
Uma função. Pode ser unário ou n-ário (ou sempre unário para idiomas sem funções n-árias).
func1, func2, Etc.
funções de aridade específica. func(sem número) é o mesmo que func1, também conhecido como projeção em muitos idiomas.
pred
Função unária que retorna um valor booleano. ( Tipo ML:) ( tipo 'a -> boolC-like:) bool pred<T>(T t).
list
A lista em operação.
args
Lista separada por vírgulas de um ou mais nomes de argumentos, na forma de arg1, arg2, ..., argn.
pattern
Um padrão, em idiomas com correspondência de padrões .
val
Qualquer valor relevante, dependendo do contexto.
identidade lambda lambda mapa Aplique filtro dobrar soma
Pitão lambda x: x lambda args: expr map(func, list) nfunc(*arguments) filter(pred, list) functools.reduce(func2, list) sum(list)
Mathematica #& (expr)&(argumentos são #1, #2etc.)

Function[{args},expr]

Map[func, list]

func /@ list

Apply[nfunc, args]

nfunc@@args

Select[list, pred] Fold[func2, val, list] Apply[Plus,list]

Plus@@list

C # x => x (args) => expr Enumerable.Select(list, func) Requer reflexão Enumerable.Where(list, pred) Enumerable.Aggregate(list, func2)

Enumerable.Aggregate(list, val, func2)

Enumerable.Sum(list)

Enumerable.Sum(list, func)

Visual Basic .NET Function(x) x Function(args) expr
F # (também pode usar Enumerable) id(construídas em)

fun x -> x

fun pattern -> expr Seq.map func list Seq.filter pred list Seq.fold func2 val list Seq.sum list

Seq.sumBy func list

Operações numéricas em listas

comp
uma função binária que retorna um valor que indica a ordem de classificação (um número inteiro na maioria das linguagens).
ordenar max min
Pitão sorted(list) max(list) min(list)
Mathematica Sort[list] Max[list] Min[list]
C # Enumerable.OrderBy(list, comp) Enumerable.Max(list, func) Enumerable.Min(list, func)
Visual Basic .NET
F # Seq.sort list

Seq.sortBy comp list

seq.max

seq.maxBy func list

seq.min

seq.minBy func list

Iterações em listas

agrupar por
Pitão itertools.groupby(list, func)
Mathematica GroupBy[list, func]
C # Enumerable.GroupBy(list, func)
Visual Basic .NET
F # lista de funções seq.groupBy

Gerando listas por ferramentas combinatórias

começar
primeiro valor do intervalo.
Passo
incremento de alcance.
contar
número de itens no intervalo.
durar
último valor inclusivo do intervalo.
fim
último valor exclusivo do intervalo.
Gerar alcance (preguiçosamente) Alcance infinito (preguiçosamente)
Pitão xrange(start, end, step) (Python 2)

range(start, end, step) (Python 3)

itertools.count(start, step)
C # Enumerable.Range(start, count) Enumerable.Range(start, Int32.MaxValue)
Visual Basic .NET
F # seq { start..step..last} Seq.initInfinite func

Referências