SICP 习题 2.28 的本质其实是树的遍历
题目要求我们实现一个叫fringe的过程,fringe的英文意思是边缘,花边的意思,题目的意思其实就是要我们遍历一棵树,然后以列表的形式返回这棵树的所有叶子。
该过程的实现和上面的deep-reverse差不多,都是遍历元素,如果元素是一个列表则递归调用fringe进入,如果元素是一个简单元素则直接组合起来。
代码如下:
(define (fringe input-list) (if (null? input-list) ‘() (append (if (list? (car input-list)) (fringe (car input-list)) (list (car input-list))) (fringe (cdr input-list)))))
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/keyboardota/article/details/39910385