SCIP 练习集
2015-11-29 15:01
204 查看
2.2.7 deep-reverse
一开始我想采用一个函数直接搞定的方法
如,这两个都是有错误的,主要问题在于null返回也会被加到list中去,导致最终结果和预期的有偏差
(define (next x) (cond ((not (pair? x)) x) ((pair? (car x)) (cons (deep-reverse (car x)) (next (cdr x)))) (else x))) (define (deep-reverse x) (reverse (next x)))
一开始我想采用一个函数直接搞定的方法
如,这两个都是有错误的,主要问题在于null返回也会被加到list中去,导致最终结果和预期的有偏差
(define (deep-reverse1 x) (cond ((pair? x) (cond ((null? (cdr x)) (deep-reverse1 (car x))) (else (list (deep-reverse1 (cdr x)) (deep-reverse1 (car x)))))) (else x))) (define (deep-reverse2 x) (cond ((pair? x) (cond ((null? (cdr x)) (deep-reverse2 (car x))) (else (cons (deep-reverse2 (cdr x)) (deep-reverse2 (car x)))))) (else x)))
相关文章推荐
- Android开发之获取手机网络状态及网络是否连接
- 谷歌搜索新玩法:不用下载就能用APP
- 关于目录树
- 何为 非对称加密? 何为 数字签名??
- [转载]跨域iframe高度自适应
- 带头节点的双向循环链表的增删查改
- 网页设计心得报告(2) 网站规划 by wrh
- 《算法竞赛入门经典2ndEdition 》例题3-5 生成元(Digit Generator, Uva1583)
- http协议基础
- 响应式布局
- canvas.save();和canvas.restore();
- 加载页面遮挡耗时操作任务页面--第三方开源之AndroidProgressLayout
- Android开发:页面跳转和数据传递
- Eclipse黑色主题,设置字体大小问题
- 【182】SeaDAS 相关处理
- Go 语言函数
- 快速理解RequireJs
- zzuli OJ 1120: 最值交换
- 深度学习概述
- Add Digits