While form now uses let.
authorTim Vaughan <tgvaughan@gmail.com>
Sun, 6 Nov 2016 00:27:32 +0000 (13:27 +1300)
committerTim Vaughan <tgvaughan@gmail.com>
Sun, 6 Nov 2016 00:27:32 +0000 (13:27 +1300)
README.md
scheme-library.scm

index 1a48c10..a435f53 100644 (file)
--- a/README.md
+++ b/README.md
@@ -8,8 +8,9 @@ life as a fairly direct port of Peter Micheaux's [Bootstrap
 Scheme](https://github.com/petermichaux/bootstrap-scheme) (as described in
 [this wonderful series of blog
 posts](http://peter.michaux.ca/articles/scheme-from-scratch-introduction)) from
-C to forth, but also includes a basic mark-sweep garbage collector, quasiquotation,
-and a very basic (non-hygenic) macro system.
+C to forth, but also includes variadic compound function support, mark-sweep
+garbage collection, quasiquotation, and a very basic (non-hygenic) macro
+system.
 
 In future, I plan to also implement a more complete numerical tower to bring it closer to
 [R5RS](http://www.schemers.org/Documents/Standards/R5RS/).
index 5ee0b49..9a9358c 100644 (file)
@@ -33,8 +33,8 @@
     ()
     (append (reverse (cdr l)) (list (car l)))))
 
-;; LIBRARY FORMS
 
+;; LIBRARY SPECIAL FORMS
 
 ; let
 
 ; while
 
 (define-macro (while condition . body)
-              (define loop (gensym))
-              `(begin
-                 (define (,loop)
-                   (if ,condition
-                     (begin ,@body (,loop))))
-                 (,loop)))
+              (let ((loop (gensym)))
+                `(begin
+                   (define (,loop)
+                     (if ,condition
+                       (begin ,@body (,loop))))
+                   (,loop))))
+
+; cond
+
 
 ;; TESTING