“deriving Functor”到底是做什么的?

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我想弄清楚到底是什么规定Haskell里的deriving Functor

我见过讯息张贴关于这件事,我已经看到测试代码但我似乎找不到关于这些规则的官方文件。

我是涛我是涛提问于
等待你的阿公数据回答于

导出Functor实例总是做显而易见的事情。这通常是很好的,但偶尔会错过机会。例如,假设我写

data Pair a = Pair a a deriving Functor
data Digit a = One a | Two a a deriving Functor
data Queue a =
    Empty
  | Single a
  | Deep !(Digit a) (Queue (Pair a)) !(Digit a) deriving Functor

这将生成(在ghc 8.2中)

instance Functor Queue where
  fmap ...
  x <$ Empty = Empty
  x <$ Single y = Single x
  x <$ Deep pr m sf = Deep (x <$ pr) (fmap (x <$) m) (x <$ sf)

用手写最后一个例子是可能的:

  x <$ Deep pr m sf = Deep (x <$ pr) (Pair x x <$ m) (x <$ sf)

可以看到实际的派生代码-ddump-deriv...

回答过的其他问题

访问index.php时报502,但是访问index.html正常?

安装PHP环境了吗?如果已经安装,重启php-fpm看一下,先Kill掉后,使用如下命令进行启动:

/usr/local/php/sbin/php-fpm

注:如果无法启动,需要根据自己的配置修改命令

智能联想的使用示例呢?详见API/SDK使用?? 没有啊,示例代码也没有?

有啊,你是要哪个的SDK?如下: PHPhttps://github.com/QcloudApi/qcloudapi-sdk-php Pythonhttps://github.com/QcloudApi/qcloudapi-sdk-python Javahttps://gith...... 展开详请

已在文件目录 创建所需要验证的文件,他总说未完成身份验证,身份验证已经验证过了呀?

如已经等待CA机构扫描审核完成,还是提示未完成身份验证,建议清除缓存或换浏览器进行尝试,或等待同步即可

自己拥有一台云服务器能做什么有趣的事?

爬虫脚本(抓点自己喜欢的图片或者数据) 个人站点(写点文章,整个炫酷的页面啥的) 媒体存储(自己的相册,视频啥的都可以放) APP服务(自己写个App然后当做服务器) ... 展开详请

Kafka Streams:流式计算、Kafka Streams的特点和架构是什么?

推荐
什么是流式计算 流式计算一般被用来和批量计算做比较。批量计算往往有一个固定的数据集作为输入并计算结果。而流式计算的输入往往是“无界”的(Unbounded Data),持续输入的,即永远拿不到全量数据去做计算;同时,计算结果也是持续输出的,只能拿到某一个时刻的结果,而不是最终的结...... 展开详请

腾讯云时序数据库 CTSDB VS 传统时序数据库?

时序数据库 1. 时序数据库 时序数据库是管理时序数据的专业化数据库,并针对时序数据的特点对写入、存储、查询等流程进行了优化,从而解决时序数据处理难题: 存储成本: o 利用维度重复、时间递增、指标平滑变化等特性,合理选择编码压缩算法,提高数据压缩比; o 通过预降精度,对历史...... 展开详请

扫码关注云+社区