【发布时间】:2011-12-20 03:53:02
【问题描述】:
例如,我想创建一个整数三元组类型MyType。但不仅仅是三个整数的笛卡尔积,我希望该类型代表所有 (x, y, z),例如 x + y + z = 5。
我该怎么做?除了只使用(x, y),因为z = 5 - x - y。
如果我有三个构造函数 A, B, C 并且类型应该都是 (A x, B y, C z) 这样x + y + z = 5,那么同样的问题。
【问题讨论】:
-
也许你应该看看Agda!
-
这是一种依赖类型的情况,Haskell 没有。为此,您需要 Agda 或 Coq。