小编Har*_*ang的帖子

可区分类型联合

有没有办法在 Haskell 中模仿 TypeScript 的可区分类型联合?我想做以下事情:

data A = B | C | D
data W = X | Y | Z

data FinalType = A | W
Run Code Online (Sandbox Code Playgroud)

我知道最后一个定义将创建两个值构造函数AWfor FinalType. 我现在可以通过FinalType以下方式正确制作:

data FinalType = B | C | D | X | Y | Z
Run Code Online (Sandbox Code Playgroud)

但这不是很整洁,并且在添加了大量值构造函数后变得很烦人。有没有办法在 Haskell 中缓解这种情况?

haskell algebraic-data-types discriminated-union

1
推荐指数
1
解决办法
94
查看次数