Решение упражнения 2.47 из SICP
Итак, селекторы для первого варианта представления рамки записываются следующим образом:
(define (origin-frame frame) (car frame)) (define (edge1-frame frame) (cadr frame)) (define (edge2-frame frame) (caddr frame))
Селекторы для второго варианта выглядят так:
(define (origin-frame frame) (car frame)) (define (edge1-frame frame) (cadr frame)) (define (edge2-frame frame) (cddr frame))
Как видим, отличие лишь в последнем селекторе, что легко пояснить тем, что конструкция
(cons a1 (cons a2 … (cons ak-1 ak) …))
лишь чуть-чуть отличается от
(list a1 a2 … ak-1 ak),
которая всего лишь является краткой формой записи для
(cons a1 (cons a2 … (cons ak-1 (cons ak nil)) …)).
Write a comment