annotate exercises/src/Exercise_8.hs @ 19:6688bf4a5836

Rename Form-File to match module name
author Markus Kaiser <markus.kaiser@in.tum.de>
date Fri, 07 Dec 2012 01:34:16 +0100
parents a899535b1674
children 6d43207984ec
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
1 module Exercise_8 where
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
2 import Form
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
3 import Data.Ratio
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
4 import Test.QuickCheck
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
5
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
6 {---------------------------------------------------------------------}
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
7 {- Aufgabe G8.1 -}
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
8
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
9 f0 :: Fraction
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
10 f0 = Over 1 2
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
11
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
12 f1 :: Fraction
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
13 f1 = Over 7 5
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
14
19
6688bf4a5836 Rename Form-File to match module name
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 18
diff changeset
15
18
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
16 norm :: Fraction -> Fraction
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
17 norm = undefined
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
18
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
19
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
20
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
21 {---------------------------------------------------------------------}
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
22 {- Aufgabe G8.2 -}
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
23 -- siehe Exercise_8_Form.hs
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
24
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
25 p0 :: Form
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
26 p0 = (Var "a" :&: Var "b") :|: (Not (Var "a") :&: Not (Var "b"))
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
27
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
28 p1 :: Form
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
29 p1 = ((Not $ Not $ Var "a") :|: (Not ((Var "b") :->: (Not (Var "c")))))
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
30
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
31
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
32
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
33 {---------------------------------------------------------------------}
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
34 {- Aufgabe G8.3 -}
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
35
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
36 v0 = [("pizza", 7), ("cola", 2), ("apfel", 1)]
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
37
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
38 a0 :: Arith
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
39 a0 = Add (Add (Mul (Const 3) (IVar "pizza")) (IVar "cola")) (IVar "apfel")
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
40
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
41 data Arith = Add Arith Arith | Mul Arith Arith | Const Integer | IVar String deriving Show
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
42
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
43
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
44 evalArith :: [(String,Integer)] -> Arith -> Integer
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
45 evalArith = undefined
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
46
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
47
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
48
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
49 {---------------------------------------------------------------------}
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
50 {- Aufgabe G8.4 -}
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
51
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
52 mkTable :: Form -> [[String]]
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
53 mkTable = undefined
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
54
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
55
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
56 showTable :: Form -> String
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
57 showTable = unlines . map unwords . mkTable
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
58
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
59
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
60 printTable :: Form -> IO ()
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
61 printTable = putStrLn . showTable