From f1145bfbdf8057a8f013adb72d80c3ca58771b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emmanuel=20Beno=C3=AEt?= Date: Mon, 2 Jan 2023 21:37:56 +0100 Subject: [PATCH] Interpreter - Lambda support --- src/interpreter/interpretable.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/interpreter/interpretable.rs b/src/interpreter/interpretable.rs index 6840e66..57909ca 100644 --- a/src/interpreter/interpretable.rs +++ b/src/interpreter/interpretable.rs @@ -160,7 +160,7 @@ impl ast::StmtNode { params: &Vec, body: &Vec, ) -> InterpreterResult { - let fun = Function::new(name, params, body); + let fun = Function::new(Some(name), params, body); environment .borrow_mut() .define(name, Some(Value::Callable(fun)))?; @@ -286,6 +286,9 @@ impl Interpretable for ast::ExprNode { right_paren, arguments, } => self.on_call(environment, callee, right_paren, arguments), + ast::ExprNode::Lambda { params, body } => { + Ok(Value::Callable(Function::new(None, params, body)).into()) + } } } }