
25 Jan
2010
25 Jan
'10
6:54 a.m.
John Moore schrieb:
data Expression = Val Integer | Add Expression Expression | Subtract Expression Expression | Multiply Expression Expression | Divide Expression Expression deriving Show
After you've copied your code (several times) for the four cases Add, Subtract, Multiply, and Divide, you may want to consider: data Expression = Val Integer | OpExpr Op Expression Expression data Op = Add | Subtract | Multiply | Divide op2op :: Op -> Integer -> Integer -> Integer op2op op = case op of Add -> (+) Subtract -> (-) Multiply -> (*) Divide -> div (or: type Op = Integer -> Integer -> Integer) Cheers Christian