zer*_*ing -2 haskell category-theory
我正在尝试从https://en.wikipedia.org/wiki/Functor网站了解Constant Functor,并且无法进行视觉成像。
如果有人可以将其显示为haskell代码,这也将是一件好事,Constant Functor是什么,以及它的优点是什么。
常数函子是目标函数为常数函数的函子。在haskell中:
newtype Const r a = Const { unConst :: r }
instance Functor (Const r) where
fmap _ (Const r) = Const r
Run Code Online (Sandbox Code Playgroud)
它在某种意义上将每种类型映射a到r,并将每种类型a -> b的功能映射到身份函数r
该const功能对类似的事物有好处!传递给高阶函数等
一个有趣的用例是基于透镜的吸气剂的定义。
与常量函数一样:常量函子是 \xe2\x80\x9cignores\xe2\x80\x9d 其参数的任何函子,并且还有一个简单的fmap操作。
在 Haskell 中,这意味着每个值F a仅包含不a以任何方式包含的数据。也就是说,它只是其他一些固定类型,比如说R。显然,这可以是任何类型,因此实际的标准Const函子将其作为另一个参数:
newtype Const r x = Const { getConst :: r }\nRun Code Online (Sandbox Code Playgroud)\n\n这是一个 ( Hask -endo-) 函子,因为它将任何类型映射x到另一个类型Const r x\xe2\x80\x93 ,而后者实际上与 是同构的r。还有fmapping,它应该只更改结构x内的值Const r x...好吧,没有,所以没有任何更改。
instance Functor (Const r) where\n fmap _ (Const r) = Const r\nRun Code Online (Sandbox Code Playgroud)\n