(define snlist-recur (lambda (flist fatom init) (letrec ([helper (lambda (l) (cond [(null? l) init] [(list? (car l)) (flist (helper (car l)) (helper (cdr l)))] [else (fatom (car l) (helper (cdr l)))]))]) helper))) (define last (snlist-recur (lambda (x y) (if (null? y) x y)) (lambda (x y) (if (null? y) x y)) '()))