From 66f0ff4ab979421a661904972e32ca00a4906c5e Mon Sep 17 00:00:00 2001 From: Kevin Ryde Date: Sat, 4 Dec 2004 23:13:16 +0000 Subject: [PATCH] (append-map, append-map!): Rewrite as simple "apply append" forms, for tail recursiveness. --- srfi/srfi-1.scm | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/srfi/srfi-1.scm b/srfi/srfi-1.scm index e355431bd..fc9c4436e 100644 --- a/srfi/srfi-1.scm +++ b/srfi/srfi-1.scm @@ -674,27 +674,10 @@ (define (append-map f clist1 . rest) - (if (null? rest) - (let lp ((l clist1)) - (if (null? l) - '() - (append (f (car l)) (lp (cdr l))))) - (let lp ((l (cons clist1 rest))) - (if (any1 null? l) - '() - (append (apply f (map1 car l)) (lp (map1 cdr l))))))) - - + (apply append (apply map f clist1 rest))) + (define (append-map! f clist1 . rest) - (if (null? rest) - (let lp ((l clist1)) - (if (null? l) - '() - (append! (f (car l)) (lp (cdr l))))) - (let lp ((l (cons clist1 rest))) - (if (any1 null? l) - '() - (append! (apply f (map1 car l)) (lp (map1 cdr l))))))) + (apply append! (apply map f clist1 rest))) (define (map! f list1 . rest) (if (null? rest)