문제

F#에서 함수에 대한 참조를 다른 함수에 전달할 수 있나요?특히 다음과 같은 람다 함수를 전달하고 싶습니다.

foo(재미 x -> x ** 3)

좀 더 구체적으로 말하면, 내가 직접 작성한 함수에서 전달된 함수를 어떻게 참조하는지 알아야 합니다.

도움이 되었습니까?

해결책

예, 가능합니다.그만큼 수동 이 예가 있습니다:

> List.map (fun x -> x % 2 = 0) [1 .. 5];;

val it : bool list
= [false; true; false; true; false]

다른 팁

함수는 F#의 일급 시민입니다.따라서 원하는 대로 전달할 수 있습니다.

다음과 같은 기능이 있는 경우:

let myFunction f =
    f 1 2 3

그리고 에프 함수이면 반환 값은 다음과 같습니다. myFunction ~이다 에프 1,2,3에 적용됩니다.

람다 함수를 다른 함수에 전달하는 방법은 다음과 같습니다.

다음과 같은 사소한 기능이 있다고 가정해 보겠습니다.

let functionThatTakesaFunctionAndAList f l = List.map f l

이제 람다 함수와 목록을 전달할 수 있습니다.

functionThatTakesaFunctionAndAList (fun x -> x ** 3.0) [1.0;2.0;3.0]

우리 자신의 함수 내부 functionThatTakesaFunctionAndAList 람다 함수를 다음과 같이 참조할 수 있습니다. f 첫 번째 매개변수를 호출했기 때문에 f.

물론 함수 호출의 결과는 다음과 같습니다.

float list = [1.0; 8.0; 27.0]
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top