- -- Slide 64
- data Expr a = Val a | Inc (Expr a) | Dec (Expr a) | Inv (Expr a) | Neg (Expr a)
- evaluate::(Fractional a)=>Expr a -> a
- evaluate (Val x) = x
- evaluate (Inc e) = 1 + evaluate e
- evaluate (Dec e) = (evaluate e) - 1
- evaluate (Inv e) = 1 / (evaluate e)
- evaluate (Neg e) = negate (evaluate e)
|