last-pair
需要处理以下三种情况:
以下是 last-pair
的定义:
;;; 17-last-pair.scm
(define (last-pair lst)
(cond ((null? lst)
(error "list empty -- LAST-PAIR"))
((null? (cdr lst))
lst)
(else
(last-pair (cdr lst)))))
测试:
1 ]=> (load "17-last-pair.scm")
;Loading "17-last-pair.scm"... done
;Value: last-pair
1 ]=> (last-pair (list))
;list empty -- LAST-PAIR
;To continue, call RESTART with an option number:
; (RESTART 1) => Return to read-eval-print level 1.
2 error> (restart 1)
;Abort!
1 ]=> (last-pair (list 1))
;Value 12: (1)
1 ]=> (last-pair (list 1 2 3))
;Value 11: (3)