gpt4 book ai didi

lisp - lisp中奇数元素的总和

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

我必须对奇数位置上的奇数元素求和。这是行不通的。有人可以告诉我我的错误在哪里吗?谢谢

(defun sum (list)
(cond
((null list) 0)
((= (mod 2 (car list)) 0) (sum (cddr list)))
(T (+ (car list) (sum (cddr list))))))

最佳答案

您的原始定义(对奇数位置的奇数元素求和)实际上非常清晰地转换为循环:

(loop for i from 0 
for x in '(0 1 2 3 4 5 6)
when (and (oddp i) (oddp x))
sum x)

您的原始解决方案在列表中下移了 cddr,这实际上是一种非常好的方法。您也可以使用 loop 来完成(最初调用 rest 只是为了让事情从索引 1 开始):

(loop for x in (rest '(0 1 2 3 4 5 6)) by #'cddr
when (oddp x)
sum x)

关于lisp - lisp中奇数元素的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29225029/

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