Я хотел бы добавить все элементы в вектор на схеме.
Я полагаю, что мои проблемные области в том, как я использую лямбду (очень неуверен в правильном использовании этого выражения), присваиваю длину вектора переменной i и добавляю значение, которое я пытаюсь получить из каждого из элементов вектора , Не уверен, как исправить ошибку на основе сообщения об ошибке.
Я получаю ошибку:
# <процедура>
код:
(define (sum X)
(define length (vector-length X)) ;potential problem area
(lambda (length)
(lambda (total)
(do (
(i length (- i 1))
(a (vector-ref X i)(+ a total)) ; potential problem area
)
((zero? i) total)
)
)
)
)
Пересмотренный код (спасибо пользователю 479988) - я удалил лямбды, понял, что они мне не нужны. И определил переменную i с начальным 0.
Ошибка: теперь вывод показывает 0.
The code:
(define (sum X)
(define length (vector-length X)) ;potential problem area
(define total 0)
(define i 0)
(do (
(i length (- i 1))
(a (vector-ref X i)(+ a total)) ; potential problem area
((zero? i) total)
)
)
)
Не могли бы вы посоветовать
и) ошибка
ii) логика алгоритма
Спасибо!