2011-07-15 61 views
3

我想在我的代碼中使用它,而不是重複它,但由於它只涉及大量通用的詞,如「功能」或「組成」,我無法通過搜索找到它。Haskell稱之爲Hom Functor/Monad是什麼?

要完全具體,我在尋找

instance Functor (x->) where 
    fmap f p = f . p 

回答

12

這是基本的閱讀器(或環境)單子,通常簡稱爲((->) e)。 (這是(e ->)寫成部分應用函數,而不是作爲一個部分;後面的語法是有問題的解析。)您可以通過導入Control.Monad.ReaderControl.Monad.Instances得到它。

+5

請注意,'Reader'本身就是'(( - >)e)'的包裝。此外,對於'Applicative'實例,'pure'和'(<*>)'恰好是** K **和** S **組合器,這總是很有趣。 :] –

+0

是的,這就是爲什麼我說「基本讀卡器monad」;實際的Reader monad是基本'(( - >)e)'結構周圍的一些糖,對於爲本地環境引入輔助「範圍」的'local'機制最爲有用。 – geekosaur

+0

謝謝! 「讀者」是我沒有嘗試搜索的一個詞。 – Owen

相關問題