Haskell:Data Functor和Control Functor

本文探讨了Haskell中的DataFunctor与ControlFunctor的区别。DataFunctor主要用于值的容器,而ControlFunctor则表示带有副作用的中间状态。两者的范畴论背景也有所不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://www.tweag.io/blog/2020-01-16-data-vs-control/
Data Functor和Control Functor是两个不同的概念,只是在Haskell中有所混淆。
这两者从定义上,可以通过线性函数来区别。
从功能上,Data Functor只能做值的容器,Control Functor表示的是一个值在被执行副作用时的中间状态。Data Functor可以是Applicative,Control Functor可以是Applicative和Monad.
从范畴论的角度来看,Control functors are the enriched functors of the category of linear functions, while data functors are the regular functors.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值