从列表中获取偶数数据

时间:2017-07-13 15:25:19

标签: racket

我是DrRacket的新手。我必须从列表中取出所有偶数,我该怎么做?例如。 (get-even-nums '(1 2 3 4 5 6 7 8 9))应该返回(8 6 4 2)。  (get-even-nums '(1 3 5 7 9))应该返回'()

(define(append_list list1 list2)
(cond
((null? list1) list2)
(else (even? (car list1)(cons (car list1))
           (append_list(cdr list1)) ))))

我真的不知道这会起作用。

2 个答案:

答案 0 :(得分:0)

最后解决了这里的解决方案

(define (segregate lst)
  (let-values ([(e o) (partition even? lst)])
    (list e)))

球拍根本不是一种简单的语言

答案 1 :(得分:-1)

以下代码可能更容易理解:

(define (get-even-nums lst)
  (let loop ((lst lst)
             (outlst '()))
    (cond 
      [(empty? lst) 
         outlst]
      [(even? (car lst))
         (loop (cdr lst)
               (cons (car lst) outlst))]
      [else 
         (loop (cdr lst) 
               outlst)] )))

理想情况下,当lst为空时,应返回(reverse outlst),但显然您希望以相反的顺序获得偶数。