我是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)) ))))
我真的不知道这会起作用。
答案 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)
,但显然您希望以相反的顺序获得偶数。