From f94e453b984df71691e1a7ab705e136f9c6ddd99 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Mon, 18 May 2015 20:44:36 +0200 Subject: Cleanup eval --- fp2/week45/camil/RefactorX.icl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fp2/week45/camil/RefactorX.icl b/fp2/week45/camil/RefactorX.icl index 9cbb6d7..a7bf909 100644 --- a/fp2/week45/camil/RefactorX.icl +++ b/fp2/week45/camil/RefactorX.icl @@ -58,19 +58,19 @@ remove_unused_lets x = x // evaluator met tabel van naam-waarde paren: eval :: Expr -> Val -eval e = fst (eval` e []) +eval e = eval` e [] where - eval` :: Expr [(Name, Val)] -> (Val, [(Name, Val)]) - eval` (NR n) vs = (Result n, []) - eval` (VAR s) vs = (find s vs, []) + 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,fst (eval` e1 vs)):vs] - eval` (OP e1 o e2) vs = (op o (fst (eval` e1 vs)) (fst (eval` e2 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 -- cgit v1.2.3 From 1565c7c4460d2728a82876e5e99b34895b58f088 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 28 May 2015 22:01:46 +0200 Subject: week 45 finish --- fp2/week45/mart/RefactorX.dcl | 2 ++ fp2/week45/mart/RefactorX.icl | 2 ++ fp2/week45/week45.tar.gz | Bin 0 -> 1091 bytes 3 files changed, 4 insertions(+) create mode 100644 fp2/week45/week45.tar.gz diff --git a/fp2/week45/mart/RefactorX.dcl b/fp2/week45/mart/RefactorX.dcl index e7fef07..393c097 100644 --- a/fp2/week45/mart/RefactorX.dcl +++ b/fp2/week45/mart/RefactorX.dcl @@ -1,3 +1,5 @@ +// Mart Lubbers s4109503, Camil Staps s4498062 + definition module RefactorX from StdClass import class toString diff --git a/fp2/week45/mart/RefactorX.icl b/fp2/week45/mart/RefactorX.icl index 1334aac..c74df08 100644 --- a/fp2/week45/mart/RefactorX.icl +++ b/fp2/week45/mart/RefactorX.icl @@ -1,3 +1,5 @@ +// Mart Lubbers s4109503, Camil Staps s4498062 + implementation module RefactorX import StdEnv diff --git a/fp2/week45/week45.tar.gz b/fp2/week45/week45.tar.gz new file mode 100644 index 0000000..690e838 Binary files /dev/null and b/fp2/week45/week45.tar.gz differ -- cgit v1.2.3