Welcome to the CHICKEN Scheme pasting service
The One Simple Trick For CPU Time Loss added by lemonboy on Sun Mar 26 23:27:56 2017
diff --git a/expand.scm b/expand.scm index 8020be32..67c5efdd 100644 --- a/expand.scm +++ b/expand.scm @@ -1245,14 +1245,16 @@ `(,(caddr clause) ,tmp) `(##core#begin ,@(cdr clause)))) (else - `(##core#if (,%or ,@(##sys#map - (lambda (x) `(,%eqv? ,tmp ',x)) - (car clause))) - ,(if (and (fx= (length clause) 3) ; ((...) => expr) - (c %=> (cadr clause))) + (let l0 ((todo (car clause))) + (if (null? todo) + (expand rclauses #f) + `(##core#if ,`(,%eqv? ,tmp ',(car todo)) + ,(if (and (fx= (length clause) 3) + (c %=> (cadr clause))) `(,(caddr clause) ,tmp) `(##core#begin ,@(cdr clause))) - ,(expand rclauses #f) ) ) ) ) ) ) ) ) ) ) ) ) + ,(l0 (cdr todo))))) + ))))))))))) (##sys#extend-macro-environment 'let*