1

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

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

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

谢谢

4

1 回答 1

3

list把它的内容变成一个列表。所以(list cdr)只是一个元素列表cdr,它本身就是一个过程。car获取列表的第一个元素。所以(car (list x)) == x对于任何x.

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

于 2013-04-30T10:29:44.157 回答