Partilhar via


Lambda Expressions: A divertida palavra-chave (F#)

A fun palavra-chave é usada para definir uma expressão lambda, ou seja, uma função anônima.

Sintaxe

fun parameter-list -> expression

Observações

A lista de parâmetros normalmente consiste em nomes e, opcionalmente, tipos de parâmetros. Mais geralmente, a lista de parâmetros pode ser composta por quaisquer padrões F#. Para obter uma lista completa de padrões possíveis, consulte Correspondência de padrões. As listas de parâmetros válidos incluem os seguintes exemplos.

// Lambda expressions with parameter lists.
fun a b c -> ...
fun (a: int) b c -> ...
fun (a : int) (b : string) (c:float) -> ...

// A lambda expression with a tuple pattern.
fun (a, b) -> …

// A lambda expression with a cons pattern.
// (note that this will generate an incomplete pattern match warning)
fun (head :: tail) -> …

// A lambda expression with a list pattern.
// (note that this will generate an incomplete pattern match warning)
fun [_; rest] -> …

A expressão é o corpo da função, cuja última expressão gera um valor de retorno. Exemplos de expressões lambda válidas incluem o seguinte:

fun x -> x + 1
fun a b c -> printfn "%A %A %A" a b c
fun (a: int) (b: int) (c: int) -> a + b * c
fun x y -> let swap (a, b) = (b, a) in swap (x, y)

Usando expressões do Lambda

As expressões do Lambda são especialmente úteis quando você deseja executar operações em uma lista ou outra coleção e deseja evitar o trabalho extra de definir uma função. Muitas funções da biblioteca F# usam valores de função como argumentos, e pode ser especialmente conveniente usar uma expressão lambda nesses casos. O código a seguir aplica uma expressão lambda a elementos de uma lista. Nesse caso, a função anônima adiciona 1 a cada elemento de uma lista.

let list = List.map (fun i -> i + 1) [ 1; 2; 3 ]
printfn "%A" list

Consulte também