首页 > 其他 > 详细

SICP 习题 (2.27)解题总结:树状列表的遍历

时间:2015-09-27 14:59:19      阅读:204      评论:0      收藏:0      [点我收藏+]

SICP 习题 2.27 又开始有些难度了,题目要求我们实现reverse的升级版deep-reverse,就是不仅要将一个列表的元素顺序倒过来,还要将列表中所有子列表的元素也倒过来。


想清楚思路以后也不算太难,其实就是在对所有元素进行倒转的过程中加多一个判断,如果正在处理的元素是一个列表,则对该列表递归调用deep-reverse过程,如果正在处理的元素是一个简单的元素则直接返回该元素。


我的代码如下:


(define (deep-reverse input-list)
  (if (null? input-list)
      ‘()
      (append (deep-reverse (cdr input-list)) 
	      (if (list? (car input-list))
			 (list (deep-reverse (car input-list)))
			 (list (car input-list))))))


版权声明:本文为博主原创文章,未经博主允许不得转载。

SICP 习题 (2.27)解题总结:树状列表的遍历

原文:http://blog.csdn.net/keyboardota/article/details/39910345

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!