scheme - 编写奇数的Scheme过程总和
问题描述
编写一个 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)
. (3 1)
当你只对列表求和时会发生什么(5)
?逻辑不应该是将sumodd
andcar
的结果加在一起cdr
吗?
推荐阅读
- coq - 在 coq 中规范化二进制数的幂等性
- snakemake - Snakemake 如何设计空输出文件的下游规则?
- python - 我如何在熊猫数据框中找到英语以外的其他语言
- python - 如何使用 BeautifulSoup 在 HTML 中提取折扣价
- javascript - 茉莉花:如何订购规格运行
- python - 查看或缩放参数
- laravel - 雄辩的关系选择返回空数组
- c - 使用 UPX 解压 C 打包脚本后没有输出
- python - python RuntimeError:字典在迭代期间改变大小 - 在 scipy 导入期间随机弹出
- r - 使用 For 循环、dplyr 和 R 闪亮的 Excel 文件下载器