functor.hs 298 B

12345678910
  1. -- Slide 64
  2. data Expr a = Val a | Inc (Expr a) | Dec (Expr a) | Inv (Expr a) | Neg (Expr a)
  3. evaluate::(Fractional a)=>Expr a -> a
  4. evaluate (Val x) = x
  5. evaluate (Inc e) = 1 + evaluate e
  6. evaluate (Dec e) = (evaluate e) - 1
  7. evaluate (Inv e) = 1 / (evaluate e)
  8. evaluate (Neg e) = negate (evaluate e)