From d56113a926a5063aec65058648c6b018241abc21 Mon Sep 17 00:00:00 2001 From: Oliver Caldwell Date: Fri, 13 Sep 2024 14:28:43 +0100 Subject: [PATCH] Simplify the REPL eval, we don't need to split the string, just add a newline! --- fnl/nfnl/repl.fnl | 9 +-------- fnl/spec/nfnl/repl_spec.fnl | 2 +- lua/nfnl/repl.lua | 9 +-------- lua/spec/nfnl/repl_spec.lua | 2 +- 4 files changed, 4 insertions(+), 18 deletions(-) diff --git a/fnl/nfnl/repl.fnl b/fnl/nfnl/repl.fnl index 75e5073..5447a06 100644 --- a/fnl/nfnl/repl.fnl +++ b/fnl/nfnl/repl.fnl @@ -30,14 +30,7 @@ (coroutine.resume co) (fn [input] - ;; Split the input into single characters and evaluate each, one at a time. - ;; This is to ensure evaluating ":foo :bar" returns both values. - (if (core.string? input) - (core.run! - (fn [char] - (coroutine.resume co char)) - (core.seq (.. input "\n"))) - (coroutine.resume co input)) + (coroutine.resume co input) (let [prev-eval-values results-to-return] (set results-to-return nil) diff --git a/fnl/spec/nfnl/repl_spec.fnl b/fnl/spec/nfnl/repl_spec.fnl index de9102c..ffc6c6e 100644 --- a/fnl/spec/nfnl/repl_spec.fnl +++ b/fnl/spec/nfnl/repl_spec.fnl @@ -10,7 +10,7 @@ (local r (repl.new)) (assert.are.same [[10 20]] (r "[10 20]")) - (assert.are.same [:foo :bar] (r ":foo :bar")) + (assert.are.same [:foo :bar] (r ":foo :bar\n")) (assert.are.same [:foo :bar] (r "(values :foo :bar)")) ;; A nil closes the REPL and returns nil. diff --git a/lua/nfnl/repl.lua b/lua/nfnl/repl.lua index 4965e28..1e053ea 100644 --- a/lua/nfnl/repl.lua +++ b/lua/nfnl/repl.lua @@ -34,14 +34,7 @@ local function new(opts) co = coroutine.create(_2_) coroutine.resume(co) local function _9_(input) - if core["string?"](input) then - local function _10_(char) - return coroutine.resume(co, char) - end - core["run!"](_10_, core.seq((input .. "\n"))) - else - coroutine.resume(co, input) - end + coroutine.resume(co, input) local prev_eval_values = results_to_return results_to_return = nil return prev_eval_values diff --git a/lua/spec/nfnl/repl_spec.lua b/lua/spec/nfnl/repl_spec.lua index 3eb1eb7..c811760 100644 --- a/lua/spec/nfnl/repl_spec.lua +++ b/lua/spec/nfnl/repl_spec.lua @@ -8,7 +8,7 @@ local function _2_() local function _3_() local r = repl.new() assert.are.same({{10, 20}}, r("[10 20]")) - assert.are.same({"foo", "bar"}, r(":foo :bar")) + assert.are.same({"foo", "bar"}, r(":foo :bar\n")) assert.are.same({"foo", "bar"}, r("(values :foo :bar)")) assert.are.same(nil, r()) assert.are.same(nil, r(":foo"))