다음을 통해 공유


람다 식: fun 키워드(F#)

fun 워드는 무명 함수인 람다 식을 정의하는 데 사용됩니다.

문법

fun parameter-list -> expression

또는 약식 표기 _.Property 법 사용:

_.

fun , parameter-list 및 람다 화살표(->)는 생략되며 _. 매개 변수 기호를 대체하는 _의 일부입니다.

다음 코드 조각은 동일합니다.

(fun x -> x.Property) _.Property

비고

매개 변수 목록은 일반적으로 이름 및 선택적으로 매개 변수 형식으로 구성됩니다. 일반적으로 매개 변수 목록은 모든 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 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] -> …

은 반환 값을 생성하는 마지막 식인 함수의 본문입니다. 유효한 람다 식의 예는 다음과 같습니다.

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# 라이브러리 함수는 함수 값을 인수로 사용하며, 이러한 경우 람다 식을 사용하는 것이 특히 편리할 수 있습니다. 다음 코드는 목록의 요소에 람다 식을 적용합니다. 이 경우 익명 함수는 요소가 지정된 문자로 끝나는 텍스트인지 확인합니다.

let fullNotation = [ "a"; "ab"; "abc" ] |> List.find ( fun text -> text.EndsWith("c") )
printfn "%A" fullNotation         // Output: "abc"

let shorthandNotation = [ "a"; "ab"; "abc" ] |> List.find ( _.EndsWith("b") )
printfn "%A" shorthandNotation    // Output: "ab"

이전 코드 조각은 키워드 사용 fun 표기법과 약식 _.Property 표기법을 모두 보여 줍니다.

참고하십시오