From 95c254d573dfddd4cc45f8bc031731074323c658 Mon Sep 17 00:00:00 2001 From: NikolajDanger Date: Sat, 30 Apr 2022 16:18:37 +0200 Subject: [PATCH] stuff (more) --- W1/calculator.fsx | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/W1/calculator.fsx b/W1/calculator.fsx index 53ef0ad..faf6de8 100644 --- a/W1/calculator.fsx +++ b/W1/calculator.fsx @@ -24,9 +24,6 @@ let rec lookup v = function | (v', k) :: vtab -> if v = v' then k else lookup v vtab | (_ : SymTab) -> failwith ("unbound variable : " + v) -(* HELP FUNCTIONS *) -let VALUEtoint = function INT x -> x - (* EVALUATION *) (***************************************************** @@ -42,8 +39,8 @@ let rec eval (vtab : SymTab) (e : EXP) : VALUE = | VARIABLE v -> lookup v vtab | OPERATE (op, e1, e2) -> - let exp1 = VALUEtoint (eval vtab e1) - let exp2 = VALUEtoint (eval vtab e2) + let (INT exp1) = eval vtab e1 + let (INT exp2) = eval vtab e2 match op with | BPLUS -> INT (exp1 + exp2) | BMINUS -> INT (exp1 - exp2) @@ -53,8 +50,8 @@ let rec eval (vtab : SymTab) (e : EXP) : VALUE = let vtab = bind var exp1 vtab eval vtab e2 | OVER (rop, var, e1, e2, e3) -> - let exp1 = VALUEtoint (eval vtab e1) - let exp2 = VALUEtoint (eval vtab e2) + let (INT exp1) = eval vtab e1 + let (INT exp2) = eval vtab e2 let results = [ for i in exp1..exp2 -> let vtab = bind var (INT i) vtab