view exercises/src/Exercise_8.hs @ 18:a899535b1674

week 8
author Markus Kaiser <markus.kaiser@in.tum.de>
date Fri, 07 Dec 2012 01:26:31 +0100
parents
children 6688bf4a5836
line wrap: on
line source

module Exercise_8 where
import Form
import Data.Ratio
import Test.QuickCheck

{---------------------------------------------------------------------}
{- Aufgabe G8.1 -}

f0 :: Fraction
f0 = Over 1 2

f1 :: Fraction
f1 = Over 7 5

norm :: Fraction -> Fraction
norm = undefined 



{---------------------------------------------------------------------}
{- Aufgabe G8.2 -}
-- siehe Exercise_8_Form.hs

p0 :: Form
p0 = (Var "a" :&: Var "b") :|: (Not (Var "a") :&: Not (Var "b"))


p1 :: Form
p1 = ((Not $ Not $ Var "a") :|: (Not ((Var "b") :->: (Not (Var "c")))))



{---------------------------------------------------------------------}
{- Aufgabe G8.3 -}

v0 = [("pizza", 7), ("cola", 2), ("apfel", 1)]

a0 :: Arith
a0 = Add  (Add  (Mul  (Const 3) (IVar "pizza")) (IVar "cola")) (IVar "apfel")

data Arith = Add Arith Arith | Mul Arith Arith | Const Integer | IVar String deriving Show


evalArith :: [(String,Integer)] -> Arith -> Integer
evalArith = undefined



{---------------------------------------------------------------------}
{- Aufgabe G8.4 -}

mkTable :: Form -> [[String]]
mkTable = undefined


showTable :: Form -> String
showTable = unlines . map unwords . mkTable


printTable :: Form -> IO ()
printTable = putStrLn . showTable