【问题】
请定义出过程last-pair。它返回仅仅包括给定(非空)表里最后一个元素的表:
(last-pair (list 23 72 149 34))
(34)
【分析】
last-pair须要处理一下三种情况:
- 空表:引发一个错误
- 单个元素的表:返回这个表本身
- 多于一个元素的表:继续向列表右边前进
【代码】
(define (last-pair lst) (cond ((null? lst) (error "list is empty")) ((null? (cdr lst)) lst) (else (last-pair (cdr lst)))))