私はHaskellの新しい学習者であり、相互再帰型の概念は私を大いに混乱させました。
次に例を示します。
data BoolExpr
= BoolConst Bool
| BoolOp BoolOp BoolExpr BoolExpr
| ConpOp CompOp IntExpr IntExpr
なぜここに2BoolOp
つとCompOp
?
BoolOp
最初のものがデータコンストラクターであることは知っていますが、2番目のものはBoolOp
どうですか?