问题描述
编写一个Scheme过程,该过程接受列表并返回列表中奇数的和。 例如,(sumodd‘(1(2()6)3(5)2))返回9以下是我的代码
(define (sumodd ls)
(cond ((null? ls) 0)
((list? (car ls)) (sumodd (car ls)))
((= (modulo (car ls) 2) 1)) (+ (car ls) (sumodd (cdr ls)))
(else (sumodd (cdr ls)))))
我尽了最大努力,但没有得到正确的答案。
推荐答案
在第二学期中,您将检查列表的car
是否为列表。例如。((5) 3 1)
。当您仅对列表(5)
求和时,(3 1)
会发生什么情况?逻辑不应该是将car
和cdr
的sumodd
结果相加吗?