我开始在Haskell Wiki上阅读关于GADT的文章,但对它的理解并不是很舒服。你是否向Haskell初学者推荐了一个特定的书籍章节或一篇解释GADT的博客文章?
发布于 2010-10-26 13:22:29
Apfelmus已经制作了video tutorial for GADTs,这可能会有所帮助。
发布于 2010-10-26 08:41:58
我喜欢GHC manual中的示例。它很简单,并且说明了一些关键点:
构造函数匹配的GADT
Term a -> a,但是eval (Lit i)的右边是Int类型,因为左边的构造函数是Haskell system的类型,并不关心你给你的GADT构造函数是什么类型。我们可以很容易地让data Term a中的每个构造函数都给出一个类型为Term a或Term Bool的结果,而data定义仍然可以通过。但是我们不能写eval :: Term a -> a。您可以选择GADT“标记类型”来对您的问题进行建模,这样您想要编写的有用函数就是具有良好类型的。发布于 2010-10-26 14:24:16
其他链接:
https://stackoverflow.com/questions/4019811
复制相似问题