程序?方案中的关键字

时间:2013-04-30 10:26:44

标签: functional-programming scheme

我是函数式编程的新手,我有一段代码如下:

(procedure? (car (list cdr)))
Value: #t

我不明白为什么这会返回true。 cdr是一个程序,但是列表cdr的车是什么?我不明白。谁能解释一下?

由于

1 个答案:

答案 0 :(得分:3)

list将其内容转换为列表。所以(list cdr)只是元素cdr的列表,它本身就是一个过程。 car获取列表的第一个元素。因此(car (list x)) == x适用于任何x

这将我们的问题简化为(procedure? cdr)。由于cdr显然是一个过程,因此返回true。