Bugfix: for-each with two lists.
authorJan Nieuwenhuizen <janneke@gnu.org>
Tue, 20 Dec 2016 11:23:10 +0000 (12:23 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Tue, 20 Dec 2016 11:23:10 +0000 (12:23 +0100)
* module/mes/scm.mes (for-each): Fix for two lists.  Always return *unspecified*.

module/mes/scm.mes

index db4f6610f82928f439121131fba86a97ca001aa2..433ddd41a4b146e160ae80b727caeb211cd19fd4 100644 (file)
           (member x (cdr lst)))))
 
 (define (for-each f l . r)
-  (if (null? l) '() ;; IF
-      (if (null? r) (begin (f (car l)) (for-each f (cdr l)))
-          (if (null? (cdr r))
-              (for-each f (cdr l) (cdar r))))))
+  (if (pair? l) (if (null? r) (begin (f (car l)) (for-each f (cdr l)))
+                    (if (null? (cdr r)) (begin (f (car l) (caar r)) (for-each f (cdr l) (cdar r)))))))
 
 (define (<= . rest)
   (or (apply < rest)