gpt4 book ai didi

recursion - 计算句子中奇数的个数

转载 作者:太空宇宙 更新时间:2023-11-03 18:40:09 26 4
gpt4 key购买 nike

我对 lisp 还很陌生,这是练习题之一。

首先,这个问题来自简单的scheme。我不知道如何回答这个问题。
这道题的目的是编写count-odd函数,将一个句子作为输入,统计其中有多少个奇数位,如下所示:

(count-odd'(234 556 4 10 97)) 6

(count-odd '(24680 42 88)) 0

如果可能,您将如何做到这一点,使用高阶函数或递归或两者兼而有之 - 无论完成工作。

最佳答案

我会给你一些建议,而不是完整的解决方案:

首先,我看到了 2 种不同的方法,递归或高阶函数 + 递归。对于这种情况,我认为直接递归更容易理解。

所以我们需要一个接受列表并做一些事情的函数,所以

(define count-odd
(lambda (ls) SOMETHING))

所以这是递归的,所以我们想拆分列表

(define count-odd
(lambda (ls)
(let ((head (car ls)) (rest (cdr ls)))
SOMETHING)))

现在这有一个问题,它是一个空列表的错误(例如 (count-odd '())),但我会让你弄清楚如何解决这个问题。 提示,查看scheme的case表达式,方便检查和处理空列表

现在我们的递归是这样的:

(+ (if (is-odd head) 1 0) (Figure out how many odds are in rest))

这应该可以让您有所作为。如果您以后有任何具体问题,请随时发布更多问题。

关于recursion - 计算句子中奇数的个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13945616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com