私は最近 F# を取り上げており (私のバックグラウンドは C# です)、サイトhttp://fsharpforfunandprofit.comを読んでいます。
コンビネータのセクションであるhttp://fsharpforfunandprofit.com/posts/defining-functions/にアクセスしました。ケストレルを除いて、私はそれらすべてを理解しています(Yコンビネーターまたはセージバードは私の心を狂わせますが!)。Scott Wlaschin は (F# で) 次のように定義しています。
let K x y = x
これが役立つ状況を一生理解することはできません。最初は、関数に値を渡してから元の値を取得できるように、チェーン演算子として使用できるのではないかと考えました。私は以前にそのような演算子を自分で書いたことがありますが、ご覧のとおり、同じではありません。
let (>|) x f = f x; x
K コンビネータ (値 5) を部分的に適用すると、引数を無視して代わりに 5 を返す関数が返されます。これも役に立ちません。
(K 5) = fun y -> 5
これがどこで使用されるかの簡単な例を教えてください。