From d8c9024f3829dc3f241b16869f165f3ee01764f3 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 12 Dec 2017 15:25:51 -0800 Subject: altos/scheme: Support scheme subsetting via feature settings This provides for the creation of smaller versions of the interpreter, leaving out options like floating point numbers and vectors. Signed-off-by: Keith Packard --- src/scheme/ao_scheme_const.scheme | 6 ------ 1 file changed, 6 deletions(-) (limited to 'src/scheme/ao_scheme_const.scheme') diff --git a/src/scheme/ao_scheme_const.scheme b/src/scheme/ao_scheme_const.scheme index ab6a309a..060fd955 100644 --- a/src/scheme/ao_scheme_const.scheme +++ b/src/scheme/ao_scheme_const.scheme @@ -805,9 +805,3 @@ ) (case 12 (1 "one") (2 "two") (3 => (lambda (x) (write "the value is" x))) (12 "twelve") (else "else")) - -;(define number->string (lambda (arg . opt) -; (let ((base (if (null? opt) 10 (car opt))) - ; -; - -- cgit v1.2.3 From 53b99e0419cb44c7983e41026bf0430deae58940 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 19 Dec 2017 11:37:33 -0800 Subject: altos/scheme: (define (foo . bar)) has a pair, not list as card When defining a lambda with varargs, the args are not a list as the final element is not a pair or nil. Use pair? instead of list? to detect this form correctly. Signed-off-by: Keith Packard --- src/scheme/ao_scheme_const.scheme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/scheme/ao_scheme_const.scheme') diff --git a/src/scheme/ao_scheme_const.scheme b/src/scheme/ao_scheme_const.scheme index 060fd955..4616477f 100644 --- a/src/scheme/ao_scheme_const.scheme +++ b/src/scheme/ao_scheme_const.scheme @@ -248,7 +248,7 @@ (macro (first . rest) ; check for alternate lambda definition form - (cond ((list? first) + (cond ((pair? first) (set! rest (append (list @@ -640,7 +640,7 @@ (char-whitespace? #\0) (char-whitespace? #\space) -(define (char->integer c) c) +(define char->integer (macro (v) v)) (define integer->char char->integer) (define (char-upcase c) (if (char-lower-case? c) (+ c (- #\A #\a)) c)) -- cgit v1.2.3