~ chicken-core (chicken-5) f9d92f5d4884c38705b6e0a9eb329eb7423b78ae
commit f9d92f5d4884c38705b6e0a9eb329eb7423b78ae Author: felix <felix@call-with-current-continuation.org> AuthorDate: Sat May 15 01:09:12 2010 +0200 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Sat May 15 01:09:12 2010 +0200 no need to check proc syntax in internal compiler syntax for for-each and map diff --git a/compiler-syntax.scm b/compiler-syntax.scm index 78748a69..1e03af4f 100644 --- a/compiler-syntax.scm +++ b/compiler-syntax.scm @@ -68,10 +68,7 @@ (%lambda (r 'lambda)) (lsts (cddr x))) (if (and (memq 'for-each standard-bindings) ; we have to check this because the db (and thus - (> (length+ x) 2) ; intrinsic marks) isn't set up yet - (or (and (pair? (cadr x)) - (c %lambda (caadr x))) - (symbol? (cadr x)))) + (> (length+ x) 2)) ; intrinsic marks) isn't set up yet (let ((vars (map (lambda _ (gensym)) lsts))) `(,%let ((,%proc ,(cadr x)) ,@(map list vars lsts)) @@ -106,10 +103,7 @@ (%pair? (r 'pair?)) (lsts (cddr x))) (if (and (memq 'map standard-bindings) ; s.a. - (> (length+ x) 2) - (or (and (pair? (cadr x)) - (c %lambda (caadr x))) - (symbol? (cadr x)))) + (> (length+ x) 2)) (let ((vars (map (lambda _ (gensym)) lsts))) `(,%let ((,%result (,%quote ())) (,%node #f)Trap