当前位置:  开发笔记 > 编程语言 > 正文

Haskell中的代数数据类型

如何解决《Haskell中的代数数据类型》经验,为你挑选了1个好方法。

我正在尝试为数学表达式编写一个简单的数据类型.我现在的代码是:

data Expr
  = Num Double
  | Add Expr Expr
  | Mul Expr Expr
  | Sin Expr
  | Cos Expr
  | X
  deriving Eq

这可以按预期工作,但我想简化一下,只有一行用于二元运算符(Add和Mul),一行用于一元运算符(Sin和Cos).有什么建议?



1> Rein Henrich..:

你可以使用,例如,

data BinOp = Add | Mul
data UnaryOp = Sin | Cos

data Expr
  = Num Double
  | Binary BinOp Expr Expr
  | Unary UnaryOp Expr

YMMV是否更简单.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有