Questions tagged «deriving»

3
在Haskell中派生如何工作?
Haskell中的代数数据类型(ADT)可以自动成为某些 typeclass的实例(例如Show,Eq所)获得来自他们。 data Maybe a = Nothing | Just a deriving (Eq, Ord) 我的问题是,这是如何deriving工作的,即Haskell如何知道如何为派生的ADT实现派生的类型类的功能? 还有,为什么 deriving限于某些类型类?为什么我不能编写自己的派生类?

3
一般拉链拉链
对于任何容器类型,我们都可以形成(以元素为中心)拉链,并知道此结构是Comonad。最近在另一个Stack Overflow问题中针对以下类型对此进行了详细探讨: data Bin a = Branch (Bin a) a (Bin a) | Leaf a deriving Functor 使用以下拉链 data Dir = L | R data Step a = Step a Dir (Bin a) deriving Functor data Zip a = Zip [Step a] (Bin a) deriving Functor instance Comonad Zip where …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.