From 8ad3d4822fffd9263a3b50fd3340073887a10aba Mon Sep 17 00:00:00 2001 From: Justine Tunney Date: Thu, 9 Dec 2021 17:34:04 -0800 Subject: [PATCH] Make JS improvements --- lisp.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lisp.js b/lisp.js index 331bc53..d6d8b8c 100755 --- a/lisp.js +++ b/lisp.js @@ -43,7 +43,7 @@ function Car(x) { if (x < 0) { return Get(x); } else { - Throw(x); + Throw(List(kCar, x)); } } @@ -51,7 +51,7 @@ function Cdr(x) { if (x < 0) { return Get(x + 1); } else { - Throw(x); + Throw(List(kCdr, x)); } } @@ -144,6 +144,10 @@ function Remove(x, y) { return Cons(Car(y), Remove(x, Cdr(y))); } +function List(x, y) { + return Cons(x, Cons(y, 0)); +} + function Define(x, y) { return Cons(Cons(x, Read()), Remove(x, y)); } @@ -166,6 +170,7 @@ function Evlis(m, a) { } function Pairlis(x, y, a) { + if (!!x ^ !!y) Throw(List(x, y)); return x ? Cons(Cons(Car(x), Car(y)), Pairlis(Cdr(x), Cdr(y), a)) : a; }