gpt4 book ai didi

scheme - 返回所有其他元素列表的方案过程

转载 作者:行者123 更新时间:2023-12-01 03:31:59 24 4
gpt4 key购买 nike

我在 Scheme 中实现这个程序时遇到了一些麻烦,尽管我认为我已经完成了 90%。不幸的是,由于这是一项家庭作业,我需要对此含糊其辞。 我想 (A B C D ) 返回 ( B D) 。但是我得到一个错误,说 The object (), passed as an argument to safe-car, is not a pair| “ 这是我的代码:

(DEFINE (other_el lis)
(COND
(( NULL? lis ) '())
((LIST? lis)
(append (CADR lis) (other_el (CDR lis))))
(ELSE (show " USAGE: (other_el [LIST])"))))

最佳答案

这个问题比您提出的上一个问题要简单得多。请记住,您不必在每一步都计算长度(这可能非常低效),或使用附加操作来解决它(使用 cons 代替);这是答案的结构,因为它看起来像作业我让你填空:

(define (every-other lst)
(if (or <???> ; if the list is empty
<???>) ; or the list has a single element
<???> ; then return the empty list
(cons <???> ; otherwise `cons` the second element
(every-other <???>)))) ; and recursively advance two elements

如果您需要先进行一些错误检查,请使用另一个函数并在确定参数正确后调用上述过程:

(define (other_el lst)
(if (list? lst)
(every-other lst)
(error "USAGE: (other_el [LIST])")))

像这样使用它:

(other_el '(A B C D E G))
=> '(B D G)

关于scheme - 返回所有其他元素列表的方案过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13318388/

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