Lambda Scheme-predicate得到null

Lambda Scheme-predicate得到null,lambda,scheme,predicate,Lambda,Scheme,Predicate,我只是构建了一个使用谓词并在列表上迭代的方案代码 代码如下: (define (filter para lst) (foldr (lambda (x y) (if (para x) (cons x y) y)) '() lst)) 例如,过滤奇数?”1 2 3将返回'1 3 拉姆达先发“和3-然后让第x段出局,这很奇怪?”它是有效的 但如果我写奇数?”它将打印一个错误 我缺少什么?第一个参数x是列表的当前

我只是构建了一个使用谓词并在列表上迭代的方案代码

代码如下:

(define (filter para lst)
       (foldr (lambda (x y) 
                (if (para x) 
                    (cons x y) y)) '() lst))
例如,过滤奇数?”1 2 3将返回'1 3

拉姆达先发“和3-然后让第x段出局,这很奇怪?”它是有效的

但如果我写奇数?”它将打印一个错误


我缺少什么?

第一个参数x是列表的当前元素。第二个y是蓄能器。所以在第一次调用中,x是3,y是'。这么说你没有做奇怪的事?”犯人3号,你做的很奇怪?你说得对!。。我只是试着调换一下,改成了y段,但它给了我一个错误…谢谢!