From ea0d4c3b4adc7a25280fae0768f711c53f18388f Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega <aliceffekt@gmail.com> Date: Mon, 15 Jul 2019 17:16:09 +0900 Subject: [PATCH] (if) without else case is now supported. --- desktop/sources/scripts/lisp.js | 4 ++-- examples/benchmark.lisp | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/desktop/sources/scripts/lisp.js b/desktop/sources/scripts/lisp.js index 789d0d0..e308c52 100644 --- a/desktop/sources/scripts/lisp.js +++ b/desktop/sources/scripts/lisp.js @@ -53,7 +53,7 @@ function Lisp (input, lib) { if (interpret(input[1], context)) { return interpret(input[2], context) } - return interpret(input[3], context) + return input[3] ? interpret(input[3], context) : [] } } @@ -66,7 +66,7 @@ function Lisp (input, lib) { } const interpret = function (input, context) { - if (!input) { return null } + if (!input) { console.warn('error', context.scope); return null } if (context === undefined) { return interpret(input, new Context(lib)) diff --git a/examples/benchmark.lisp b/examples/benchmark.lisp index 2ac3622..a1be15d 100644 --- a/examples/benchmark.lisp +++ b/examples/benchmark.lisp @@ -21,13 +21,12 @@ (test "gt" (gt 3 4) false) (test "and - true" (and 1 2 true 4) 4) - (test "and - false" (and 1 false 2) false) - (test "or - true" (or false false 2 false) 2) (test "if - branch 1" (if (gt 3 2) ("branch 1") ("branch 2")) "branch 1") (test "if - branch 2" (if (lt 3 2) ("branch 1") ("branch 2")) "branch 2") + (test "if - no else" (if (lt 3 2) ("branch 1")) ()) ; Arrays