You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写及调试Scheme过程实现嵌套列表内所有奇数的求和?

代码问题分析
  • 语法错误:cond分支结构书写错误。你的第三个条件分支((= (modulo (car ls) 2) 1)) (+ (car ls) (sumodd (cdr ls)))不符合cond的(条件 执行表达式)语法,条件后多闭合了一个括号,导致求和表达式完全脱离了该条件分支,逻辑执行完全不符合预期。
  • 逻辑缺失:嵌套子列表处理分支只计算了当前子列表的奇数和,没有累加当前列表剩余元素的奇数和,处理完子列表后会直接丢弃后续所有元素的计算结果。
修正后的完整代码
(define (sumodd ls)
  (cond ((null? ls) 0)
        ((list? (car ls)) 
         (+ (sumodd (car ls)) (sumodd (cdr ls))))
        ((= (modulo (car ls) 2) 1) 
         (+ (car ls) (sumodd (cdr ls))))
        (else (sumodd (cdr ls)))))
验证测试

输入示例(sumodd '(1 (2 () 6) 3 (5) 2)),执行结果为9,符合需求。

内容的提问来源于stack exchange,提问作者Tyson Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 16:45:05