【发布时间】:2011-03-19 13:05:41
【问题描述】:
我正在使用可区分联合构建表达式树。以下代码:
type IntExpression =
| TrueIsOne of BoolExpression
type BoolExpression =
| LessThan of IntExpression * IntExpression
| And of BoolExpression * BoolExpression
| Or of BoolExpression * BoolExpression
| Bool of bool
抛出错误,因为 BoolExpression 未定义。如您所料,交换定义只会导致相反的结果(未定义 IntExpression)。
有没有办法解决这个问题?
【问题讨论】:
-
@Brian 这是同一个问题,但术语不同,我无法通过谷歌或网站搜索找到它。仅此一项可能就是让两者都打开的原因。
标签: f# recursion discriminated-union mutual-recursion