我是函数式编程的新手,我有一段代码如下:
(procedure? (car (list cdr)))
Value: #t
我不明白为什么这会返回true。 cdr是一个程序,但是列表cdr的车是什么?我不明白。谁能解释一下?
由于
答案 0 :(得分:3)
list
将其内容转换为列表。所以(list cdr)
只是元素cdr
的列表,它本身就是一个过程。 car
获取列表的第一个元素。因此(car (list x)) == x
适用于任何x
。
这将我们的问题简化为(procedure? cdr)
。由于cdr
显然是一个过程,因此返回true。