module Piggybank where {- zu implementierende Funktionen: emptyPig :: PiggyBank -- leeres Sparschwein add :: Coin -> PiggyBank -> PiggyBank -- Einwerfen einer Muenze shake :: PiggyBank -> (PiggyBank, Coin) -- Herausschütteln einer Muenze isEmpty :: PiggyBank -> Bool -- Test auf leeres Sparschwein break :: PiggyBank -> Money -- Aufbrechen des Sparschweins -- zu erfuellende Gleichungen: shake (add x emptyPig) = (emptyPig, x) break p + break (add x emptyPig) = break (add x p) -} data Coin = OneCent | TwoCents | FiveCents | TenCents | FiftyCents | OneEuro | TwoEuros deriving Show type Money = Int -- Geldwert in Cents -- Variante I: Sparschwein als 7-Tupel type PiggyBank1 = (Int, Int, Int, Int, Int, Int, Int) -- Variante II: Sparschwein als Liste type PiggyBank2 = [Coin]