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的角度看没有意义。