From b503bd29e81653843d83729e34c3aae906ec5b1c Mon Sep 17 00:00:00 2001 From: monoid Date: Sun, 16 Feb 2025 20:56:00 +0900 Subject: [PATCH] refactor: simplify eval_let_expr parameters --- lib/eval.ml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/eval.ml b/lib/eval.ml index 63f0c46..a4dd1f3 100644 --- a/lib/eval.ml +++ b/lib/eval.ml @@ -16,7 +16,7 @@ and function_type = { let rec eval_expr (scope: scope) (expr: Parser.expr_tree): value_type = match expr with | Parser.LetExpr (l) -> - eval_let_expr scope l.name l.value_expr l.in_expr + eval_let_expr scope l | Parser.FunExpr (ftree) -> eval_fun_expr scope ftree | Parser.IfExpr (Parser.If (cond_expr, then_expr, else_expr)) -> @@ -50,7 +50,12 @@ and eval_if_expr scope cond_expr then_expr else_expr = (match cond with | Int 0 -> eval_expr scope else_expr | _ -> eval_expr scope then_expr) -and eval_let_expr scope name value_expr in_expr = +and eval_let_expr scope ({ + name = name; + value_expr = value_expr; + in_expr = in_expr; + type_declare = _; +}: Parser.let_expr_tree) = let value = eval_expr scope value_expr in let new_scope = { scope with bindings = VariableBindingMap.add name value scope.bindings } in eval_expr new_scope in_expr