我正在尝试添加列表中的所有奇数元素.
我无法弄清楚出了什么问题.它适用于所有赔率的列表,但如果甚至只有一个偶数,则会导致错误 - 它表示它期望一个数字作为第二个元素,而是传入一个列表,这不应该发生.
我的代码出了什么问题?
(define list-sum-odd
(lambda (list)
(cond
((null? list)
0)
((odd? (car list))
(+ (car list) (list-sum-odd (cdr list))))
(list-sum-odd
(cdr list)))))
Run Code Online (Sandbox Code Playgroud)
替换(list-sum-odd (cdr list))为(else (list-sum-odd (cdr list))).您正在测试该过程是否list-sum-odd为真(因为它不是#f,它是),然后返回(cdr list).你需要告诉Scheme,最后一个表达式应该是else表达式.
| 归档时间: |
|
| 查看次数: |
826 次 |
| 最近记录: |