我正在尝试为数学表达式编写一个简单的数据类型.我现在的代码是:
data Expr = Num Double | Add Expr Expr | Mul Expr Expr | Sin Expr | Cos Expr | X deriving Eq
这可以按预期工作,但我想简化一下,只有一行用于二元运算符(Add和Mul),一行用于一元运算符(Sin和Cos).有什么建议?
你可以使用,例如,
data BinOp = Add | Mul data UnaryOp = Sin | Cos data Expr = Num Double | Binary BinOp Expr Expr | Unary UnaryOp Expr
YMMV是否更简单.