Решение упражнения 2.17 из SICP
При нахождении последней пары мы просто будем двигаться по списку пар, начиная с головы списка, и проверять, не указывает ли хвостовой указатель головной пары (получаемый процедурой cdr) на nil. Как только мы обнаржим такую пару, мы ее вернем.
(define (last-pair list) (if (null? (cdr list)) list (last-pair (cdr list))))
Написать код в данном случае даже проще, чем его описать. Это не случайно.
Write a comment