Эффективность процедуры sqrt-stream
Хьюго Дум спрашивает, почему нельзя было написать
sqrt-stream
более простым способом, без внутренней переменной
guesses
:
(define (sqrt-stream x)
(cons-stream 1.0
(stream-map (lambda (guess)
(sqrt-improve guess x))
(sqrt-stream x))))
Лиза П. Хакер отвечает, что эта версия процедуры значительно менее эффективна, поскольку производит избыточные вычисления. Объясните Лизин ответ. Сохранилось бы отличие в эффективности, если бы реализация
delay
использовала только
(lambda () <exp>)
, без оптимизации через
memo-proc
(см. раздел 3.5.1)?
Комментарии отсутствуют.