2.2.1. Представление последовательностей
Упражнение 2.22

Square-list с итеративным процессом

Хьюго Дум пытается переписать первую из процедур square-list из упражнения 2.21 так, чтобы она работала как итеративный процесс:

(define (square-list items)
  (define (iter things answer)
    (if (null? things)
        answer
        (iter (cdr things) 
              (cons (square (car things))
                    answer))))
  (iter items nil))

К сожалению, такое определение square-list выдает список результатов в порядке, обратном желаемому. Почему?

Затем Хьюго пытается исправить ошибку, обменяв аргументы cons

(define (square-list items)
  (define (iter things answer)
    (if (null? things)
        answer
        (iter (cdr things)
              (cons answer
                    (square (car things))))))
  (iter items nil))

И так программа тоже не работает. Объясните это.



Комментарии отсутствуют.

Необходима авторизация

Вы должны авторизоваться для создания комментария.

Вход