X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=scheme-library.scm;h=b92795dfd03f29005d13aa3ac9eb57e5abadbfb3;hb=f81ffb05496dc3490c0c7469017d9c7ba7c0113a;hp=207bb30062fe236189c9b49b402462b934af5255;hpb=480095585b96fbcc5a4fb58fb57188609aadb6e5;p=scheme.forth.jl.git diff --git a/scheme-library.scm b/scheme-library.scm index 207bb30..b92795d 100644 --- a/scheme-library.scm +++ b/scheme-library.scm @@ -21,13 +21,19 @@ (car lists) (join (car lists) (apply append (cdr lists)))))) +; Reverse the contents of a list +(define (reverse l) + (if (null? l) + () + (append (reverse (cdr l)) (list (car l))))) ;; LIBRARY FORMS -(define-macro (let value . body ) - (list (list 'lambda (list (car value)) body)) (cdr value)) ;; TESTING +(define-macro (backwards . body) + (cons 'begin (reverse body))) + ; Basic iterative summation. Run this on large numbers to ; test garbage collection and tail-call optimization. (define (sum n)