Решение упражнения 2.47 из SICP

4 February, 2008 (21:36) | Решения упражнений

Итак, селекторы для первого варианта представления рамки записываются следующим образом:

(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