don't error when passing dotted lists to n-ary map

This commit is contained in:
Alex Shinn 2010-08-01 16:20:31 +09:00
parent e4b65f83d5
commit e656c6e7e2

View file

@ -73,11 +73,11 @@
(map1 proc (cdr ls) (cons (proc (car ls)) res)) (map1 proc (cdr ls) (cons (proc (car ls)) res))
(reverse res))) (reverse res)))
(define (mapn proc lol res) (define (mapn proc lol res)
(if (null? (car lol)) (if (pair? (car lol))
(reverse res)
(mapn proc (mapn proc
(map1 cdr lol '()) (map1 cdr lol '())
(cons (apply1 proc (map1 car lol '())) res)))) (cons (apply1 proc (map1 car lol '())) res))
(reverse res)))
(if (null? lol) (if (null? lol)
(map1 proc ls '()) (map1 proc ls '())
(mapn proc (cons ls lol) '()))) (mapn proc (cons ls lol) '())))