我最近一直在使用F#(我的背景是C#),並正在閱讀網站http://fsharpforfunandprofit.com,我發現這很有幫助。(Kestrel)K-combinator:爲什麼它有用?
我必須http://fsharpforfunandprofit.com/posts/defining-functions/這是關於combinators的部分。我理解他們所有人(儘管Y combinator或Sage鳥用我的心靈擰緊了!),除了紅隼。斯科特Wlaschin給定義(在F#)爲:
let K x y = x
我不明白任何情況下,這將是有用的。起初,我認爲它可能被用作鏈運算符,以便您可以將值傳遞給函數,然後取回原始值。我寫了這樣的運營商自己之前,但你可以看到它是不一樣的:如果我們部分採用K個組合子(值是5)
let (>|) x f = f x; x
然後我們回來,忽略其自變量的函數而是返回5.再次,沒有用。
(K 5) = fun y -> 5
任何人都可以給我一個簡單的例子,這可能會使用嗎?
:D看看這個:https://en.wikipedia.org/wiki/SKI_combinator_calculus - 它真的只是學術上的樂趣 - 即使你在F#中找到一些用途,你也不應該把它叫做'K' ^^ – Carsten 2014-10-01 11:09:18
順便說一句,如果你沒有馬上找到它 - 例如''K''用於在SKI calculuse中實現像布爾值,元組,數字等......(這是一個基本的構建塊;)) - 想一想它作爲一種投影到*第一個組件* – Carsten 2014-10-01 11:11:12
謝謝,我讀過維基百科頁面,但它沒有提供比我已有的更多信息。 – Richiban 2014-10-01 11:13:45