: finding the n-th leaf of a tree
(define (enumerate-tree tree)
(cond ((null? tree) nil)
((not (pair? tree)) (list tree))
(else (append (enumerate-tree (car tree))
(enumerate-tree (cdr tree))))))
(define nil '())
(define x (list 1 (list 2 (list 3 4)) 5))
(define (tree-ref L n)
(do-tree-ref L n 1)
)
(define (do-tree-ref L n flag)
(cond ((= flag 1) (do-tree-ref (enumerate-tree L) n 0))
((= n 0) (car L))
(else (do-tree-ref (cdr L) (- n 1) 0))
)
)
沒有留言:
張貼留言