関数への参照をF#の別の関数に渡すことはできますか?F#の関数を渡す
具体的には、私は私の関数に渡された関数を参照する方法を知っておく必要があります -
のfoo(> X ** 3楽しいx)のように具体的に、私はラムダ関数を渡したいのですが自分自身を書きました。
関数への参照をF#の別の関数に渡すことはできますか?F#の関数を渡す
具体的には、私は私の関数に渡された関数を参照する方法を知っておく必要があります -
のfoo(> X ** 3楽しいx)のように具体的に、私はラムダ関数を渡したいのですが自分自身を書きました。
はい、可能です。 manualには、次の例があります。
> List.map (fun x -> x % 2 = 0) [1 .. 5];;
val it : bool list
= [false; true; false; true; false]
ファンクションはF#のファーストクラスの市民です。あなたが望むようにそれらを周りに渡すことができます。
あなたはこのような機能を持っている場合: F
let myFunction f =
f 1 2 3
とが関数である、その後MyFunctionをの戻り値が1,2及び3
引き渡しに適用 F ですラムダ関数は次のように動作します。
次のような私たちの自明な関数があるとします。
let functionThatTakesaFunctionAndAList f l = List.map f l
今、あなたはそれにラムダ関数とリストを渡すことができます。
functionThatTakesaFunctionAndAList (fun x -> x ** 3.0) [1.0;2.0;3.0]
あなたが最初のパラメータf
と呼ばれるので、あなただけのf
としてラムダ関数を参照することができfunctionThatTakesaFunctionAndAList
私たち自身の関数の内部。
関数呼び出しの結果はもちろんです:
float list = [1.0; 8.0; 27.0]
あなたはMyFunctionをへの入力として二つの機能が必要な場合は何? – Nulle
次に、myFunction f1 f2 =としましょう – nickd