マイクロソフトの説明。
関数呼び出しの結果値として関数を返すことができるのは、高階関数のもう 1 つの特徴です。 次の例では、1 つの引数 checkFor
を受け取り、結果値として新しい関数を返す item
という関数を定義します。 返された関数は、引数 lst
としてリストを受け取り、その item
内で lst
を検索します。 item
が存在する場合、関数は true
を返します。 item
がない場合、関数は false
を返します。 次のコードでは、前のセクションと同様に、用意されているリスト関数 List.exists を使用してリストを検索します。
何か良く分からないです。試しに英語版をDeepLで訳してみましたのが下です。下の方が分かりやすいでしょう。
関数呼び出しの値として関数を返すことができるのが、高階関数の第二の特徴である。次の例では、checkForはitemという引数をとり、その値として新しい関数を返す関数と定義されている。返される関数は、引数としてリストlstを取り、lstの中にitemがあるかどうかを探す。もしitemが存在すれば、この関数はtrueを返す。itemが存在しない場合、この関数はfalseを返す。前のセクションと同様に、次のコードでは、提供されたリスト関数List.existsを使ってリストを検索しています。
13行目が肝だと思います。関数を定義しているようで、例えば、関数fは、let f x = x * xかまたは、let f = fun x -> x * xが関数を定義しているので、微妙に違いがあります。checkForは、ローカル関数functionToReturnがあって、ラムダ式で一致した要素があるかを調べて、boole値を返す。
17行目を追加しました。