From 2b68619c9a9f5a2b2a88b8b651ec94412b5d16a3 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Tue, 9 Apr 2024 21:01:50 -0500 Subject: Uh --- eval.lua | 10 ++++------ read.lua | 2 ++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eval.lua b/eval.lua index e3e21c3..867a704 100644 --- a/eval.lua +++ b/eval.lua @@ -1,7 +1,6 @@ --- lam.eval local m = {} -local core = require "core" local type = require "type" local assert_arity = require("util").assert_arity @@ -122,9 +121,9 @@ m.specials = { assert_arity(r, 3, 3) local test, conseq, alt = r[1], r[2][1], r[2][2][1] - if m.eval(test) - then return m.eval(conseq) - else return m.eval(alt) + if m.eval(test, e) + then return m.eval(conseq, e) + else return m.eval(alt, e) end end, -- TODO: include, import, define-syntax, ... @@ -133,8 +132,7 @@ m.specials = { m.specials.lam = m.specials.lambda m.specials.def = m.specials.define -function m.eval (x, env) - local env = env or core.env +function m.eval (x, env) -- TODO: specify ENV on all calls if type.isa(x, "symbol") then if env[x] == nil then error(string.format("Unbound variable: %s", x)) diff --git a/read.lua b/read.lua index 35f5b57..332c919 100644 --- a/read.lua +++ b/read.lua @@ -193,6 +193,8 @@ function m.scan (cs) token, toktype, cs = m.readtable[cs[1]](cs) return token, toktype, cs elseif cs[1]:match("%s") then + --- should this just continue the loop? + -- i.e., remove `return' return consume_whitespace(cs) elseif cs[1]:match("[%d.+-]") then -- numbers, +, -, ., ... -- cgit 1.4.1-21-gabe81