SICP-练习2.17
2014-07-22 19:32
288 查看
【问题】
请定义出过程last-pair,它返回只包含给定(非空)表里最后一个元素的表:
(last-pair (list 23 72 149 34))
(34)
【分析】
last-pair需要处理一下三种情况:
空表:引发一个错误
单个元素的表:返回这个表本身
多于一个元素的表:继续向列表右边前进
以下是last-pair的定义:(迭代实现)
【代码】
(define (last-pair lst)
(cond ((null? lst)
(error "list is empty"))
((null? (cdr lst))
lst)
(else
(last-pair (cdr lst)))))
请定义出过程last-pair,它返回只包含给定(非空)表里最后一个元素的表:
(last-pair (list 23 72 149 34))
(34)
【分析】
last-pair需要处理一下三种情况:
空表:引发一个错误
单个元素的表:返回这个表本身
多于一个元素的表:继续向列表右边前进
以下是last-pair的定义:(迭代实现)
【代码】
(define (last-pair lst)
(cond ((null? lst)
(error "list is empty"))
((null? (cdr lst))
lst)
(else
(last-pair (cdr lst)))))
相关文章推荐
- 【SICP练习】49 练习2.17
- SICP练习2.17
- 【SICP练习】49 练习2.17
- SICP-练习2.17
- sicp练习2.6
- 【SICP练习】21 练习1.27
- 【SICP练习】69 练习2.40
- 【SICP练习】44 练习2.3
- 【SICP练习】120 练习3.51
- 【SICP练习】134 练习3.65
- 【SICP练习】82 练习2.54
- 【SICP练习】31 练习1.37
- 【SICP练习】98 练习2.73
- 【SICP练习】143 练习3.81
- 【SICP练习】28 练习1.34
- SICP 练习 1.3
- SICP-《计算机程序的构造和解释》之习题分析与收获——练习1.29
- 【SICP练习】150 练习4.6
- SICP 练习1.9
- 【SICP练习】7 练习1.11