Tango-br
  • Introduction
  • Começando
    • Índice
    • Recado do desenvolvedor
    • O que é a Tango?
    • Por onde começar?
  • Instalação
    • Instalação via NuGet
    • Instalação manual
  • Conceitos
    • Introdução
    • Utilizando comparação de padrões (Pattern Matching)
    • Valores Opcionais
    • Valores "Ou um ou outro" (Either)
    • Saindo do void para o Unit
    • Delegates Func e Action
    • Utilizando operações encadeadas com processos contínuos
    • Currying e Aplicação Parcial
  • Funcional
    • Introdução
    • Currying
    • Aplicação Parcial
    • Extensões
    • Cast Rápido para Delegates
  • Operações
    • Introdução
    • Operações com Booleans
    • Operações com Inteiros
    • Operações com Decimais
    • Operações com Doubles
    • Operações com Strings
  • Tipos
    • Introdução
    • Unit
    • Option<T>
    • Either<TLeft, TRight>
    • Continuation<TFail, TSuccess>
  • Módulos
    • Introdução
    • Option
      • Apply
      • AsEnumerable
      • Bind
      • Count
      • Exists
      • Filter
      • Fold
      • FoldBack
      • Iterate
      • Map
      • OfNullable
      • ToArray
      • ToList
      • ToNullable
    • Either
      • Exists
      • Iterate
      • Fold
      • FoldBack
      • Map
      • Swap
      • ToTuple
    • Continuation
      • AsContinuation
      • Resolve
      • Reject
      • All
    • Collection
      • Append
      • Choose
      • ChunkBySize
      • Collect
      • CompareWith
      • CountBy
      • Concat
      • Distinct
      • Empty
      • Exists
      • Exists2
      • Filter
      • FindIndex
      • Fold
      • Fold2
      • FoldBack
      • FoldBack2
      • ForAll
      • ForAll2
      • ForAll3
      • Head
      • HeadAndTailEnd
      • Range
      • Generate
      • Initialize
      • Iterate
      • Iterate2
      • IterateIndexed
      • IterateIndexed2
      • Map
      • Map2
      • Map3
      • MapIndexed
      • MapIndexed2
      • MapIndexed3
      • Partition
      • Permute
      • Pick
      • Reduce
      • ReduceBack
      • Replicate
      • Scan
      • Scan2
      • ScanBack
      • ScanBack2
      • Tail
      • TryFind
      • TryPick
      • Unzip
      • Unzip3
      • Zip
      • Zip3
  • Extensões
    • Introdução
    • Extensões para Enum
    • Construtor de EqualityComparer
    • Módulos como extensão
Powered by GitBook
On this page
  • Métodos
  • Como Usar

Was this helpful?

  1. Funcional

Aplicação Parcial

PreviousCurryingNextExtensões

Last updated 5 years ago

Was this helpful?

Esta classe estática contém diversas sobrecargas para realizar a aplicação parcial em uma função. Cada uma das sobrecargas espera uma função com diferentes quantidades de parâmetros, contendo ou não um retorno.

Métodos

Nome

Parâmetros

Retorno

Descrição

PartialApply

Func<T, TResult> function

T parameter

Func<TResult>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Func<T, T2, TResult> function

T parameter

T2 parameter2

Func<TResult>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Func<T, T2, TResult> function

T parameter

Func<T2,TResult>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Func<T, T2, T3, TResult> function

T parameter

T2 parameter2

T3 parameter3

Func<TResult>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Func<T, T2, T3, TResult> function

T parameter

T2 parameter2

Func<T3, TResult>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Func<T, T2, T3, TResult> function

T parameter

Func<T2, T3, TResult>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Func<T, T2, T3, T4, TResult> function

T parameter

T2 parameter2

T3 parameter3

T4 parameter4

Func<TResult>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Func<T, T2, T3, T4, TResult> function

T parameter

T2 parameter2

T3 parameter3

Func<T4, TResult>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Func<T, T2, T3, T4, TResult> function

T parameter

T2 parameter2

Func<T3, T4, TResult>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Func<T, T2, T3, T4, TResult> function

T parameter

Func<T2, T3, T4, TResult>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Action<T> action

T parameter

Action

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Action<T, T2> action

T parameter

T2 parameter2

Action

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Action<T, T2> action

T parameter

Action<T2>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Action<T, T2, T3> action

T parameter

T2 parameter2

T3 parameter3

Action

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Action<T, T2, T3> action

T parameter

T2 parameter2

Action<T3>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Action<T, T2, T3> action

T parameter

Action<T2, T3>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Action<T, T2, T3, T4> function

T parameter

T2 parameter2

T3 parameter3

T4 parameter4

Action

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Action<T, T2, T3, T4> function

T parameter

T2 parameter2

T3 parameter3

Action<T4>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Action<T, T2, T3, T4> function

T parameter

T2 parameter2

Action<T3, T4>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

PartialApply

Action<T, T2, T3, T4> function

T parameter

Action<T2, T3, T4>

Cria uma nova função a partir de uma aplicação parcial à função informada no parâmetro.

Como Usar

Assim como no processo de Currying, as diversas sobrecargas disponíveis podem ser utilizadas para criar novas funções a partir de funções existentes.

Neste exemplo vamos considerar a função add como uma função que realiza a soma de dois números:

 Func<int, int, int> add = (value, value2) => value + value2;

Ao aplicarmos a função PartialApply receberemos como retorno uma nova função, esta função esperará o último parâmetro da soma e retornará o resultado da soma.

Func<int, int, int> add = 
    (value, value2) => value + value2;

Func<int, int> addPartial = PartialApplication.PartialApply(add, 2);
int partialResult = addPartial(3);

Diferente do Currying, ao realizarmos a aplicação parcial precisamos informar um ou mais parâmetros da função e o retorno sempre será uma função que espera todos os parâmetros restantes e retorna o resultado da função principal.

O conceito para Aplicação Parcial e demais exemplos podem ser encontrados na seção .

Tango.Functional.PartialApplication
Conceitos > Currying e Aplicação Parcial