SICP問題2.17

与えられた(空でない)リストの最後の要素だけからなるリストを返す手続きlast-pair
再帰

(define (last-pair items)
  (if (null? (cdr items))
      (list (car items))
      (last-pair (cdr items))))

反復版

(define (last-pair items)
  (define (iter last-item last-items)
    (if (null? last-items)
	(list last-item)
	(iter (car last-items) (cdr last-items))))
  (iter 'null items))

ref-items, lengthを使った版

(define (last-pair items)
  (list (list-ref items (- (length items) 1))))