如何只删除Racket列表中的第三项

时间:2014-05-12 02:44:12

标签: list scheme racket

我必须删除列表中的第3项并返回其余的我觉得我正在前往它的路上,但是我收到了一个错误。我该如何完成这项工作?

(define main
  (lambda (ls)(cons(car ls)
               (cddr ls)))
抱歉,我不知道如何将代码放入其他人为球拍做的事情中,所以它只是像这种格式一样。但我真的需要帮助。我得到的错误是一个arteri块,说我需要2个参数。

1 个答案:

答案 0 :(得分:0)

你可以在程序的主体中尝试这个,假设列表中至少三个元素:

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

以上内容适用于Racket。但如果您更喜欢使用更多标准程序:

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