From 012ecba60a13af0b493cc510f11d1108c0694584 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Sun, 31 Mar 2024 22:13:51 -0500 Subject: Expose `specials' --- eval.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/eval.lua b/eval.lua index 4a4ad0e..e13fb97 100644 --- a/eval.lua +++ b/eval.lua @@ -49,6 +49,7 @@ function m.procedure (params, body, env) end local specials = { +m.specials = { -- each of these takes R (a list of args) and E (an environment) quote = function (r, e) return r[1] end, @@ -70,8 +71,8 @@ local specials = { -- TODO: include, import, define-syntax, ... } -- Aliases -specials.lam = specials.lambda -specials.def = specials.define +m.specials.lam = m.specials.lambda +m.specials.def = m.specials.define function m.eval (x, env) local env = env or core.env @@ -81,8 +82,8 @@ function m.eval (x, env) return x else local op, args = x[1], x[2] - if specials[op] then - return specials[op](args, env) + if m.specials[op] then + return m.specials[op](args, env) else -- procedure call local fn = m.eval(op, env) local params = {} -- cgit 1.4.1-21-gabe81