首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Haskell中如何派生工作?

在Haskell中如何派生工作?
EN

Stack Overflow用户
提问于 2018-05-02 23:18:51
回答 2查看 0关注 0票数 0

Haskell中的代数数据类型(ADTs)可以通过派生它们自动成为一些类型化类的实例(如ShowEq)。

代码语言:javascript
复制
data  Maybe a  =  Nothing | Just a
  deriving (Eq, Ord)

我的问题是,这是如何工作的,即Haskell如何知道如何实现派生类型类的派生类ADT函数?

另外,为什么deriving只限于某些类型类?为什么我不能编写我自己可以派生的类型类?

EN

回答 2

Stack Overflow用户

发布于 2018-05-03 07:47:27

派生是Haskell的一个工具,可以让你编写自己的派生机制。

GHC用于提供一个名为Generic Classes的可扩展类型扩展,但它很少使用,因为它有点弱。现在已经取消了,正在进行工作以整合本文所述的新的通用推导机制:http : //www.dreixel.net/research/pdf/gdmh.pdf

有关更多信息,请参阅:

票数 0
EN

Stack Overflow用户

发布于 2018-05-03 08:32:13

以下是如何派生这些类型类的说明:http : //www.haskell.org/onlinereport/derived.html#derived-appendix

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档