我想在Scheme中的向量中添加所有项目。
我相信我的问题区域是我使用lambda的方式(非常不确定这个表达式的正确用法),将向量的长度分配给变量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)
)
)
)
)
修改后的代码(感谢user479988) - 我删除了lambdas,意识到我不需要它们。并将变量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)
)
)
)
你能告诉我吗? i)错误 ii)算法的逻辑
谢谢!
答案 0 :(得分:1)
我无法真正告诉你程序的结构,因为括号不匹配,缩进很难读,但我认为你没有给lambdas任何输入所以不返回总和,你返回函数你因为你没有评估它们所以用lambdas制作。