写一个奇数的方案程序和

人气:570 发布:2022-10-16 标签: scheme racket procedure

问题描述

编写一个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)会发生什么情况?逻辑不应该是将carcdrsumodd结果相加吗?

466