(define (flatten lis) (if (null? lis) lis (if (cons? (car lis)) (append (flatten (car lis)) (flatten (cdr lis))) (cons (car lis) (flatten (cdr lis)))))