【发布时间】:2011-07-14 02:25:38
【问题描述】:
我有一些代数数据类型 A、B 和 C,每个都实现了该类:
class Dog a where
dog :: a -> Bool
如果我创建一个新的代数数据类型:
data D = A | B | C
有没有一种简单的方法可以让 D 实现 Dog 而不必再次为 A、B 和 C 重新定义每个实例?
谢谢
【问题讨论】:
-
您的意思是创建一个使用原始数据类型的新数据类型?或者将现有类型组合成一个单独的类型来替换它们?虽然,无论哪种情况,答案都可能是“不,不是真的”。 :T
-
Dog 与 D 有什么关系?你到底想做什么? dog :: D -> Bool dog A = True dog B = False 像这样?
标签: haskell typeclass algebraic-data-types