(define x (list (list 1 2) (list 3 4)))
(define (fringe lst)
(cond ((null? lst) '() )
((not (pair? lst)) (list lst))
(else (append (fringe (car lst)) (fringe (cadr lst))))))
run:
Welcome to DrRacket, version 5.3.3 [3m].
Language: SICP (PLaneT 1.17); memory limit: 512 MB.
> (fringe x)
{mcons 1 {mcons 2 {mcons 3 {mcons 4 '()}}}}
>