37
我很好奇flip id
(這不是作業:我在getOpt
文檔中找到它)。爲什麼Haskell的「flip id」有這種類型?
我不知道爲什麼它有這個類型:
Prelude> :t (flip id)
(flip id) :: b -> (b -> c) -> c
例如,(flip id) 5 (+6)
給11
。
我知道爲什麼id (+6) 5
給出11,但我沒有「得到」flip id
的東西。
我試圖用筆和紙自己弄清楚,但不能。有誰可以向我解釋這個嗎?我的意思是,flip id
怎麼會有b -> (b -> c) -> c
?
嘿,ertes,你似乎有[另一個帳戶](http://stackoverflow.com/users/1488832/ertes),兩者都未註冊。如果你註冊你的帳戶,你可以[合併它們](http://meta.stackexchange.com/questions/18232/how-can-one-link-merge-combine-associate-two-accounts-users-anonymous-unregist ),然後有一個單一的帳戶所有的答案(順便說一句,這真的很好!)。 – huon
謝謝,很好的答案。你提到'$'使得它更直觀易懂,我很高興你沒有離開它。這將使我的大腦再過幾天才能完全理解你的答案。 –
很好的答案。將「flip id」想成「flip($)」有很多幫助。 – Garrett