module Main where
data Expr = Const Int | Add Expr Expr | Sub Expr Expr | Mul Expr Expr | Div Expr Expr
main = print (eval (Div (Const 20) (Add (Const 1) (Sub (Const 10) (Const 2)))))
eval :: Expr -> Int
eval (Const k) = k
eval (Add x y) = eval x + eval y
eval (Sub x y) = eval x - eval y
eval (Mul x y) = eval x * eval y
eval (Div x y) = eval x `div` eval y
Wednesday, May 10, 2006
Here is a toy evaluator of integer expressions:
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment