我最近一直在学习 F#(我的背景是 C#)并且正在阅读网站http://fsharpforfunandprofit.com,我发现它非常有帮助。
我必须访问http://fsharpforfunandprofit.com/posts/defining-functions/这是关于组合器的部分。除了红隼之外,我都了解它们(尽管 Y 组合器或 Sage 鸟在我的脑海中拧紧!)。Scott Wlaschin 给出的定义(在 F# 中)为:
let K x y = x
我一生都无法理解这将是有用的任何情况。起初我认为它可以用作链运算符,以便您可以将值传递给函数,然后返回原始值。我以前自己也写过这样的运算符,但你可以看到它不一样:
let (>|) x f = f x; x
如果我们部分应用 K 组合子(值为 5),那么我们会返回一个忽略其参数并返回 5 的函数。同样,没有用。
(K 5) = fun y -> 5
谁能给我一个简单的例子来说明这可能在哪里使用?