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 quefunc1
, também conhecido como projeção em muitos idiomas.
-
pred
- Função unária que retorna um valor booleano. ( Tipo ML:) ( tipo
'a -> bool
C-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 , #2 etc.)
|
Map[func, list]
|
Apply[nfunc, args]
|
Select[list, pred]
|
Fold[func2, val, list]
|
Apply[Plus,list]
|
C # |
x => x
|
(args) => expr
|
Enumerable.Select(list, func)
|
Requer reflexão |
Enumerable.Where(list, pred)
|
Enumerable.Aggregate(list, func2)
|
Enumerable.Sum(list)
|
Visual Basic .NET |
Function(x) x
|
Function(args) expr
|
|||||
F # (também pode usar Enumerable) |
id (construídas em)
|
fun pattern -> expr
|
Seq.map func list
|
Seq.filter pred list
|
Seq.fold func2 val list
|
Seq.sum 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.max
|
seq.min
|
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)
|
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