- def simplifyTop ( expr : Expr ): Expr = expr match {
- case UnOp ( " -" , UnOp ( " -" , e )) = > e // Double negation
- case BinOp ( " + " , e , Number (0)) = > e // Adding zero
- case BinOp ( " * " , e , Number (1)) = > e // Multiplying by one
- case _ = > expr
- }
- scala > simplifyTop ( UnOp ( " -" , UnOp ( " -" , Var ( " x " ))))
- res0 : Expr = Var ( x )