List 如何在Racket中仅删除列表中的第三项 我必须删除列表中的第三项,然后返回其余部分,我感觉我在路上,但是我得到了一个错误。我该怎么完成这件事 (define main (lambda (ls)(cons(car ls) (cddr ls)))

List 如何在Racket中仅删除列表中的第三项 我必须删除列表中的第三项,然后返回其余部分,我感觉我在路上,但是我得到了一个错误。我该怎么完成这件事 (define main (lambda (ls)(cons(car ls) (cddr ls))),list,scheme,racket,List,Scheme,Racket,对不起,我不知道如何把代码,因为每个人都为球拍,所以它只有在这样的格式来。但在这件事上我真的需要帮助。我得到的错误是一个arteri块说我需要2个参数。您可以在过程主体中尝试,假设列表至少有三个元素: (cons (first ls) ; take 1st element (cons (second ls) ; together with 2nd element (rest (rest (r

对不起,我不知道如何把代码,因为每个人都为球拍,所以它只有在这样的格式来。但在这件事上我真的需要帮助。我得到的错误是一个arteri块说我需要2个参数。

您可以在过程主体中尝试,假设列表至少有三个元素:

(cons (first ls)                      ; take 1st element
      (cons (second ls)               ; together with 2nd element
            (rest (rest (rest ls))))) ; grab the rest starting from 4th
以上将在球拍中起作用。但如果您更喜欢使用标准程序:

(cons (car ls)                        ; take 1st element
      (cons (cadr ls)                 ; together with 2nd element
            (cdddr ls)))              ; grab the rest starting from 4th

你能准确地解释一下你得到的错误是什么吗?这是一个arteri块粘贴你在尝试运行上述代码时从Racket得到的准确错误消息。由于某种原因,错误不会再次出现…代码的最后一行缺少括号。除此之外,它还可以完美地返回与参数相同的列表,除了第二个元素。我被迫使用底部的元素,但它只返回原始列表。@AdamSpencerBaker不,它没有。复制你函数的
lambda
中的整段代码,它就会工作。好的,它工作了,非常感谢:D最后一件事,这篇文章否决了它,怎么样?因为我认为我遵循了所有的指示。也许是因为你没有发布准确的错误消息?别担心,是的,对不起,错了,但非常感谢,我不知道你现在有多抓紧。你的帮助从F变成了A。