--- srfi-1.scm.~1.29.~ 1970-01-01 10:00:01.000000000 +1000 +++ srfi-1.scm 2003-11-11 10:28:35.000000000 +1000 @@ -572,22 +572,8 @@ '() (append! (apply f (map1 car l)) (lp (map1 cdr l))))))) -(define (map! f list1 . rest) - (if (null? rest) - (let lp ((l list1)) - (if (null? l) - '() - (begin - (set-car! l (f (car l))) - (set-cdr! l (lp (cdr l))) - l))) - (let lp ((l (cons list1 rest)) (res list1)) - (if (any1 null? l) - '() - (begin - (set-car! res (apply f (map1 car l))) - (set-cdr! res (lp (map1 cdr l) (cdr res))) - res))))) +;; OPTIMIZE-ME: Re-use cons cells of given list(s) +(define map! map) (define (pair-for-each f clist1 . rest) (if (null? rest)