Можно ли передать ссылку на функцию другой функции в 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]
что, если вам нужны две функции в качестве входных данных для myFunction?