2011-07-15 63 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

相关问题