(define (foldr f end xs) (if (null? xs) end (f (car xs) (foldr f end (cdr xs))))) (define (foldl f start xs) (if (null? xs) start (foldl f (f start (car xs)) (cdr xs))))