(define flatten (lambda (ls) (cond [(null? ls) ls] [(pair? (car ls)) (append (flatten (car ls)) (flatten (cdr ls)))] [else (cons (car ls) (flatten (cdr ls)))])))