summaryrefslogtreecommitdiff
path: root/Haskell-book/11/Hutton.hs
blob: 539ba65fbb4dbc4d49b74c442bed437e7ab344a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
module Hutton where

data Expr
    = Lit Integer
    | Add Expr Expr

eval :: Expr -> Integer
eval (Lit x)   = x
eval (Add x y) = (eval x) + (eval y)

printExpr :: Expr -> String
printExpr (Lit x) = show x
printExpr (Add x y) = (printExpr x) ++ " + " ++ (printExpr y)