diff options
| author | Camil Staps | 2016-02-02 19:24:50 +0100 | 
|---|---|---|
| committer | Camil Staps | 2016-02-02 19:24:50 +0100 | 
| commit | a7d7542dc646a5fd124ef71e71ce260889f1701b (patch) | |
| tree | 04ed89503bbb3cc9933273a1326a53ca724c3492 /fp2/week45 | |
| parent | week6 camil: working positioning of lines by putting empties at left and righ... (diff) | |
Diffstat (limited to 'fp2/week45')
| -rw-r--r-- | fp2/week45/camil/RefactorX.dcl | 18 | ||||
| -rw-r--r-- | fp2/week45/camil/RefactorX.icl | 82 | ||||
| -rw-r--r-- | fp2/week45/mart/RefactorX.dcl | 17 | ||||
| -rw-r--r-- | fp2/week45/mart/RefactorX.icl | 72 | ||||
| -rw-r--r-- | fp2/week45/week45.tar.gz | bin | 1091 -> 0 bytes | 
5 files changed, 0 insertions, 189 deletions
| diff --git a/fp2/week45/camil/RefactorX.dcl b/fp2/week45/camil/RefactorX.dcl deleted file mode 100644 index 3ddc8a4..0000000 --- a/fp2/week45/camil/RefactorX.dcl +++ /dev/null @@ -1,18 +0,0 @@ -definition module RefactorX
 -
 -import StdEnv
 -
 -::	Expr			= NR   Int
 -					| VAR  Name
 -					| OP   Expr Operator Expr
 -					| LET  Name     Expr Expr
 -::	Name		  :== String
 -::	Operator		= PLUS | MIN | MUL | DIV
 -::	Val				= Result Int | Undef
 -
 -from StdClass import class toString
 -
 -instance toString Expr
 -free				:: Expr -> [Name]
 -remove_unused_lets	:: Expr -> Expr
 -eval				:: Expr -> Val
 diff --git a/fp2/week45/camil/RefactorX.icl b/fp2/week45/camil/RefactorX.icl deleted file mode 100644 index a7bf909..0000000 --- a/fp2/week45/camil/RefactorX.icl +++ /dev/null @@ -1,82 +0,0 @@ -implementation module RefactorX
 -
 -import StdEnv
 -
 -Start = map eval [E1,E2,E3,E4,E5]
 -
 -E1 = OP (LET "x" (OP (NR 42) MIN (NR 3)) (OP (VAR "x") DIV (NR 0)))
 -	PLUS
 -	(LET "y" (NR 6) (OP (VAR "y") MUL (VAR "y")))
 -E2 = LET "x" (NR 42) (OP (VAR "x") PLUS (LET "x" (NR 58) (VAR "x")))
 -E3 = LET "x" (NR 1) (LET "y" (NR 2) (LET "x" (NR 3) (NR 4)))
 -E4 = LET "x" (NR 1) (OP (VAR "x") PLUS (VAR "y"))
 -E5 = OP (LET "x" (NR 1) (VAR "x")) MUL (VAR "x")
 -
 -::	Expr							= NR   Int
 -									| VAR  Name
 -									| OP   Expr Operator Expr
 -									| LET  Name     Expr Expr
 -::	Name							:== String
 -::	Operator						= PLUS | MIN | MUL | DIV
 -::	Val								= Result Int | Undef
 -
 -(<+) infixl 9 :: String a -> String | toString a
 -(<+) str a = str +++ toString a
 -
 -instance toString Operator where
 -	toString PLUS = "+"
 -	toString MIN = "-"
 -	toString MUL = "*"
 -	toString DIV = "/"
 -
 -//  expressies afdrukken:
 -instance toString Expr where
 -	toString (NR n) = toString n
 -	toString (VAR s) = s
 -	toString (LET s e1 e2) = "let " <+ s <+ " = " <+ e1 <+ " in " <+ e2
 -	toString (OP e1 o e2) = bracket e1 <+ o <+ bracket e2
 -	where
 -		bracket :: Expr -> String
 -		bracket (OP e1 o e2) = "(" <+ e1 <+ o <+ e2 <+ ")"
 -		bracket (LET s e1 e2) = "(" <+ (LET s e1 e2) <+ ")"
 -		bracket x = toString x
 -
 -//	vrije variabelen:
 -free								:: Expr -> [Name]
 -free (NR _) = []
 -free (VAR s) = [s]
 -free (LET s _ e2) = [n \\ n <- free e2 | n <> s]
 -free (OP e1 _ e2) = removeDup ((free e1) ++ (free e2))
 -
 -//	verwijder deelexpressies met ongebruikte let-variabelen:
 -remove_unused_lets					:: Expr -> Expr
 -remove_unused_lets (LET s e1 e2)
 -| isMember s (free e2) = (LET s (remove_unused_lets e1) (remove_unused_lets e2))
 -| otherwise = remove_unused_lets e2
 -remove_unused_lets (OP e1 o e2) = OP (remove_unused_lets e1) o (remove_unused_lets e2)
 -remove_unused_lets x = x
 -
 -//	evaluator met tabel van naam-waarde paren:
 -eval								:: Expr -> Val
 -eval e = eval` e []
 -where
 -	eval` :: Expr [(Name, Val)] -> Val
 -	eval` (NR n) vs = Result n
 -	eval` (VAR s) vs = find s vs
 -	where
 -		find :: Name [(Name, Val)] -> Val
 -		find _ [] = Undef
 -		find s [(t,v):vs]
 -		| s == t = v
 -		| otherwise = find s vs
 -	eval` (LET s e1 e2) vs = eval` e2 [(s,eval` e1 vs):vs]
 -	eval` (OP e1 o e2) vs = op o (eval` e1 vs) (eval` e2 vs)
 -	where
 -		op :: Operator Val Val -> Val
 -		op _ Undef _ = Undef
 -		op _ _ Undef = Undef
 -		op PLUS (Result x) (Result y) = Result (x + y)
 -		op MIN (Result x) (Result y) = Result (x - y)
 -		op MUL (Result x) (Result y) = Result (x * y)
 -		op DIV _ (Result 0) = Undef
 -		op DIV (Result x) (Result y) = Result (x / y)
 diff --git a/fp2/week45/mart/RefactorX.dcl b/fp2/week45/mart/RefactorX.dcl deleted file mode 100644 index 393c097..0000000 --- a/fp2/week45/mart/RefactorX.dcl +++ /dev/null @@ -1,17 +0,0 @@ -// Mart Lubbers s4109503, Camil Staps s4498062
 -
 -definition module RefactorX
 -
 -from StdClass import class toString
 -import StdEnv
 -
 -:: Expr = NR Int | VAR Name | OP Expr Operator Expr | LET Name Expr Expr
 -:: Name :== String
 -:: Operator = PLUS | MIN | MUL | DIV
 -:: Val = Result Int | Undef
 -
 -
 -instance toString Expr
 -free :: Expr -> [Name]
 -remove_unused_lets :: Expr -> Expr
 -eval :: Expr -> Val
 diff --git a/fp2/week45/mart/RefactorX.icl b/fp2/week45/mart/RefactorX.icl deleted file mode 100644 index c74df08..0000000 --- a/fp2/week45/mart/RefactorX.icl +++ /dev/null @@ -1,72 +0,0 @@ -// Mart Lubbers s4109503, Camil Staps s4498062
 -
 -implementation module RefactorX
 -
 -import StdEnv
 -
 -//Start = map toString [E1,E2,E3,E4,E5]
 -//Start = map free [E1,E2,E3,E4,E5]
 -//Start = map toString (map remove_unused_lets [E1,E2,E3,E4,E5])
 -Start = map eval [E1,E2,E3,E4,E5]
 -	where
 -		E1 = OP (LET "x" (OP (NR 42) MIN (NR 3)) (OP (VAR "x") DIV (NR 0))) PLUS (LET "y" (NR 6) (OP (VAR "y") MUL (VAR "y")))
 -		E2 = LET "x" (NR 42) (OP (VAR "x") PLUS (LET "x" (NR 58) (VAR "x")))
 -		E3 = LET "x" (NR 1) (LET "y" (NR 2) (LET "x" (NR 3) (NR 4)))
 -		E4 = LET "x" (NR 1) (OP (VAR "x") PLUS (VAR "y"))
 -		E5 = OP (LET "x" (NR 1) (VAR "x")) MUL (VAR "x")
 -
 -(<+) infixl 9 :: String a -> String | toString a
 -(<+) str a = str +++ toString a
 -
 -instance toString Operator where
 -	toString PLUS = "+"
 -	toString MIN = "-"
 -	toString MUL = "*"
 -	toString DIV = "/"
 - 
 -instance toString Expr where
 -	toString (NR n) = toString n
 -	toString (VAR v) = v
 -	toString (LET n e1 e2) = "(let " <+ n <+ "=" <+ e1 <+ " in " <+ e2 <+ ")"
 -	toString (OP e1 o e2) = bracket e1 <+ o <+ bracket e2
 -		where
 -			bracket :: Expr -> String
 -			bracket (OP e1 o e2) = "(" <+ (OP e1 o e2) <+ ")"
 -			bracket e = toString e
 -
 -free:: Expr -> [Name]
 -free (NR n) = [] 
 -free (VAR v) = [v]
 -free (OP e1 o e2) = removeDup (free e1 ++ free e2)
 -free (LET n e1 e2) = removeMember n (free e2)
 -
 -remove_unused_lets:: Expr -> Expr
 -remove_unused_lets (LET n e1 e2)
 -| isMember n (free e2) = (LET n (remove_unused_lets e1) (remove_unused_lets e2))
 -| otherwise = remove_unused_lets e2
 -remove_unused_lets (OP e1 o e2) = (OP (remove_unused_lets e1) o (remove_unused_lets e2))
 -remove_unused_lets e = e
 -
 -apply:: Operator Val Val -> Val
 -apply _ Undef _ = Undef
 -apply _ _ Undef = Undef
 -apply DIV _ (Result 0) = Undef
 -apply o (Result e1) (Result e2) = Result (apply` o e1 e2)
 -	where 
 -		apply`:: Operator -> Int Int -> Int
 -		apply` PLUS = +
 -		apply` MIN = -
 -		apply` MUL = *
 -		apply` DIV = /
 -
 -eval:: Expr -> Val
 -eval e = eval` e []
 -	where
 -		eval`:: Expr [(Name, Val)] -> Val
 -		eval` (NR n) _ = Result n
 -		eval` (VAR v) [] = Undef
 -		eval` (VAR v) [(n, e):xs]
 -		| v == n = e
 -		| otherwise = eval` (VAR v) xs
 -		eval` (OP e1 o e2) xs = apply o (eval` e1 xs) (eval` e2 xs)
 -		eval` (LET n e1 e2) xs = eval` e2 [(n, eval` e1 xs):xs]
 diff --git a/fp2/week45/week45.tar.gz b/fp2/week45/week45.tar.gzBinary files differ deleted file mode 100644 index 690e838..0000000 --- a/fp2/week45/week45.tar.gz +++ /dev/null | 
