comparison 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
comparison
equal deleted inserted replaced
17:73170284e009 18:a899535b1674
1 module Exercise_8 where
2 import Form
3 import Data.Ratio
4 import Test.QuickCheck
5
6 {---------------------------------------------------------------------}
7 {- Aufgabe G8.1 -}
8
9 f0 :: Fraction
10 f0 = Over 1 2
11
12 f1 :: Fraction
13 f1 = Over 7 5
14
15 norm :: Fraction -> Fraction
16 norm = undefined
17
18
19
20 {---------------------------------------------------------------------}
21 {- Aufgabe G8.2 -}
22 -- siehe Exercise_8_Form.hs
23
24 p0 :: Form
25 p0 = (Var "a" :&: Var "b") :|: (Not (Var "a") :&: Not (Var "b"))
26
27
28 p1 :: Form
29 p1 = ((Not $ Not $ Var "a") :|: (Not ((Var "b") :->: (Not (Var "c")))))
30
31
32
33 {---------------------------------------------------------------------}
34 {- Aufgabe G8.3 -}
35
36 v0 = [("pizza", 7), ("cola", 2), ("apfel", 1)]
37
38 a0 :: Arith
39 a0 = Add (Add (Mul (Const 3) (IVar "pizza")) (IVar "cola")) (IVar "apfel")
40
41 data Arith = Add Arith Arith | Mul Arith Arith | Const Integer | IVar String deriving Show
42
43
44 evalArith :: [(String,Integer)] -> Arith -> Integer
45 evalArith = undefined
46
47
48
49 {---------------------------------------------------------------------}
50 {- Aufgabe G8.4 -}
51
52 mkTable :: Form -> [[String]]
53 mkTable = undefined
54
55
56 showTable :: Form -> String
57 showTable = unlines . map unwords . mkTable
58
59
60 printTable :: Form -> IO ()
61 printTable = putStrLn . showTable