我正在编写一个程序,该程序通过在原始过滤程序中使用 lambda,返回一个列表,其中删除了所有负奇数和正偶数(字符串可以保留)。我也避免使用递归,但这就是困扰我的地方。到目前为止,我所拥有的是:
(define (f2b lst)
(cond ((null? lst)'()) ; if the list is empty, return the empty list
((pair? (car lst)) ; if the current element isn't a list
(filter (lambda (x) (or (even? x) (positive? x))) (car lst))
(filter (lambda (x) (or (odd? x) (negative? x))) (car lst)))
(else (string? (car lst)) ;otherwise, if the current element is a string,
(car lst) ; then return that element
(f2b (cdr lst)))))
我也不确定如何同时应用这两个过滤程序。