Haskell 哈斯凯尔把Hom函子/单子叫做什么?

Haskell 哈斯凯尔把Hom函子/单子叫做什么?,haskell,monads,functor,Haskell,Monads,Functor,我想在我的代码中使用它,也不想复制它,但因为它只涉及大量的通用词,如“函数”或“组合”,我无法通过搜索找到它 确切地说,我正在寻找 instance Functor (x->) where fmap f p = f . p 这是基本的阅读器(或环境)monad,通常称为((->)e)。(这是(e->)作为一个部分应用的函数而不是一个部分编写的;后一种语法很难解析。)您可以通过导入Control.Monad.Reader或Control.Monad.Instances来获得它。请注

我想在我的代码中使用它,也不想复制它,但因为它只涉及大量的通用词,如“函数”或“组合”,我无法通过搜索找到它

确切地说,我正在寻找

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

这是基本的阅读器(或环境)monad,通常称为
((->)e)
。(这是
(e->)
作为一个部分应用的函数而不是一个部分编写的;后一种语法很难解析。)您可以通过导入
Control.Monad.Reader
Control.Monad.Instances

来获得它。请注意,
Reader
本身只是
(->)e
的包装器。另外,对于
应用程序的
实例,
()
恰好是K和S组合符,这总是很有趣的。:]是的,这就是为什么我说“基本读者monad”;实际的阅读器monad是基本
((->)e)
结构周围的一些糖,对于
本地
机制引入环境的辅助“范围”非常有用。应该称之为Hom;)可能吧,但哈斯凯尔的大部分范畴理论实际上都是一个复述@欧文:好吧,如果你在
do
符号和计算解释的上下文中看,它就像“一个可以访问只读环境的计算”,而
State
大致是
Reader
Writer
的组合。。。所以有一定的逻辑,但从CT的角度看没有意义。