(define (unknown (lambda (x y)
(cond
((null? y) y)
((x (car y)) (unknown x (cdr y))))
(else (cons (car y) (unknown x (cdr y)))))))
对于计划而言,我是一个新手,想知道我在教科书中遇到的这个功能的目的。我的主要疑问是((x(car y))是什么。如果没有任何运算符,这个表达式如何执行,但我在编译时没有遇到任何错误。虽然我无法运行程序,因为我为x输入的值显然不适用于该功能。请帮助。
答案 0 :(得分:2)
Scheme函数可以将函数作为参数,并可以返回函数。如果将函数作为参数传入,则代码是有意义的。
如果你这样调用代码:
(unknown even? '(1 2 3 4 5))
然后它应该返回列表(1 3 5)。这是一个过滤函数,它返回y的成员,其中将函数x应用于成员的结果为false。