Лямбда-выражения: ключевое слово fun (F#)

Ключевое fun слово используется для определения лямбда-выражения, то есть анонимной функции.

Синтаксис

fun parameter-list -> expression

Remarks

Список параметров обычно состоит из имен и, при необходимости, типов параметров. Как правило, список параметров может состоять из любых шаблонов F#. Полный список возможных шаблонов см. в разделе "Сопоставление шаблонов". Списки допустимых параметров включают следующие примеры.

// 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 list pattern.
fun head :: tail -> …

Выражение является телом функции, последнее выражение которого создает возвращаемое значение. Ниже приведены примеры допустимых лямбда-выражений:

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)

Использование лямбда-выражений

Лямбда-выражения особенно полезны, если вы хотите выполнять операции со списком или другой коллекцией и хотите избежать дополнительной работы по определению функции. Многие функции библиотеки F# принимают значения функций в качестве аргументов, и в таких случаях может быть особенно удобно использовать лямбда-выражение. Следующий код применяет лямбда-выражение к элементам списка. В этом случае анонимная функция добавляет 1 к каждому элементу списка.

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

См. также