(define (append list1 list2)
(if (null? list1)
list2
(cons (car list1) (append (cdr list1) list2))))
(define (flattern items)
(append (if (pair? (car items))
(flattern (car items))
(cons (car items) null))
(if (null? (cdr items))
null
(if (pair? (cdr items))
(flattern (cdr items))
(cons (cdr items) null)))))
(define (fringe x)
(define (fringe-iter i p)
(if (null? i) p
(fringe-iter
(cdr i)
(append p (if (pair? (car i))
(fringe-iter (car i) null)
(list (car i)))))))
(fringe-iter x null))
(fringe (list (list 1 (list 2 3) 4 (list 5 6 (list 7 8) 9) 10) (list 11 12) 13))
(define (fringe x)
(define (fringe-iter i p)
(if (null? i) p
(if (pair? (car i))
(fringe-iter (append (car i) (cdr i)) p)
(fringe-iter (cdr i) (append p (list (car i)))))))
(fringe-iter x null))
(fringe (list (list 1 (list 2 3) 4 (list 5 6 (list 7 8) 9) 10) (list 11 12) 13))