В следующем коде значения для avg и avg2 изменяются по мере продвижения кода. Как я могу сделать это так, чтобы значения были постоянными во всей функции, не определяя их вне функции? Должен ли я использовать вспомогательную функцию?Схема, поддерживающая значение во всей программе
(define (covariance-list x y)
(let ((avg (average x)))
(let ((avg2 (average y)))
(if (null? x)
'()
(cons (* (- (car x) avg)(- (car y) avg2))
(covariance-list (cdr x) (cdr y)))))))
Вы должны стараться избегать прохождения Avg-х и Avg-Y рекурсивно все время. – uselpa
@uselpa, потому что они потребляют стек, вы имеете в виду? –
Поскольку у вас создается впечатление, что они могут измениться (почему еще вы хотели бы передавать их снова и снова?), Но они этого не делают. – uselpa