gpt4 book ai didi

haskell - haskell中的相互递归类型

转载 作者:行者123 更新时间:2023-12-02 07:40:07 25 4
gpt4 key购买 nike

我是 Haskell 的新手,相互递归类型的概念让我很困惑。

这是一个例子:

data BoolExpr
= BoolConst Bool
| BoolOp BoolOp BoolExpr BoolExpr
| ConpOp CompOp IntExpr IntExpr

为什么这里有两个BoolOpCompOp

我知道第一个 BoolOp 是数据构造函数,但是第二个 BoolOp 呢?

最佳答案

你是对的,第一个 BoolOpconstructor ;第二个表示构造函数采用 ::BoolOp 类型的值。完整的类型是:

BoolOp :: BoolOp -> BoolExpr -> BoolExpr -> BoolExpr

所以我希望周围有一些这样的代码:

data BoolOp = BoolAnd  |  BoolOr  |  BoolXor

所以要使用这个构造函数,你需要给它一个 BoolOp 和两个 BoolExpr:

myBoolExpr :: BoolExpr
myBoolExpr = BoolOp BoolOr (BoolConst True) (BoolConst False)

关于haskell - haskell中的相互递归类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12047097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com