2014-09-10 30 views
1
(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输入值显然是不适用的功能。请帮助。以下函数在Scheme编程语言中做了什么

+1

哦好吧。所以x会采取类似“零”的东西? ? – hotinlavacoolinjava 2014-09-10 18:22:28

+0

是的。 __________ – 2014-09-10 23:12:10

回答

2

方案的功能可以采取函数作为参数,并且可以返回的功能。您的代码是有道理的,如果你在一个函数作为参数传递。

如果调用这样的代码:

(unknown even? '(1 2 3 4 5)) 

那么它应该返回列表(1 3 5)这是R A过滤功能eturns y的成员,其中将函数x应用于成员的结果是错误的。

+0

好吧,明白了。谢谢您的帮助。 – hotinlavacoolinjava 2014-09-10 18:25:43

+2

@hotinlava:np。去读小Schemer,它有很多这样的事情。 – 2014-09-10 18:27:20