【发布时间】:2019-08-14 04:04:40
【问题描述】:
在 Scala 中我可以描述这样的 ADT:
sealed trait Foo
case class A(a: Int) extends Foo
case class B(b: String) extends Foo
case class C(a: A, b: B) extends Foo
我怎样才能在 Haskell 中做同样的事情?
data Foo = A Int | B String | C A B
它不起作用,因为 A 和 B 不是类型。我应该使用 GHC 扩展来做到这一点吗?
【问题讨论】:
标签: scala haskell algebraic-data-types