summaryrefslogtreecommitdiff
path: root/coding-exercises/2/28.rkt
blob: d8d3bd6caa3a65d5d59a7ed815881943c8f320cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#lang racket
(require sicp)

(define (fringe tree)
  (define (iter tree leaves-list)
    (cond ((null? tree) leaves-list)
          ((pair? (car tree))
           (iter (cdr tree) (append leaves-list (iter (car tree) '()))))
          (else
           (iter (cdr tree) (append leaves-list (list (car tree)))))))
  (iter tree '()))

(define x (list (list 1 2) (list 3 4)))
(fringe x)