From 1d4125dd8ccbe272a190c155a4215daf1f362f10 Mon Sep 17 00:00:00 2001 From: Marcos Magueta Date: Fri, 18 Sep 2026 00:01:08 -0300 Subject: fix lambda test and execute --- lib/evaluators/Lambda.ml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/evaluators/Lambda.ml b/lib/evaluators/Lambda.ml index 48ae6ec..a75fc10 100644 --- a/lib/evaluators/Lambda.ml +++ b/lib/evaluators/Lambda.ml @@ -77,16 +77,18 @@ let reduce (Program (term, dir)) = end | Abstract (binder, body) -> Ok (Closure (binder, body, env)) | Apply (operator, operand) -> - let* operator = eval env operation in + let* operator = eval env operator in match operator with | Relation _ -> Error (Error.not_applicable ()) - | _ -> failwith "TODO" + | Closure (binder, body, closed) -> + let* argument = eval env operand in + eval (BatMap.String.add binder argument closed) body in eval BatMap.String.empty term let execute term = let open Utilities.Result in - let* value = reduce context term in + let* value = reduce term in match value with | Closure _ -> Error (Error.unapplied_abstraction ()) | Relation handle -> -- cgit v1.2.3