列表中的最后一个元素在Scheme中指向什么?
当我在Scheme中列出一个列表时,最后一对的cdr指向什么?它是一个“空单词”还是一个“空列表”?DrScheme不介意列表中的最后一个元素在Scheme中指向什么?,scheme,Scheme,当我在Scheme中列出一个列表时,最后一对的cdr指向什么?它是一个“空单词”还是一个“空列表”?DrScheme不介意(cons'a空)也不介意(cons'a'())。最后,空单词和空列表之间的区别是什么 最后一对的cdr指向空列表'() 最后一对的cdr指向空列表'() 如果您计算符号为空,则可以找到您所有问题的答案。它被定义为等于”(),空列表,这是最后一个cdr指向的内容。要说服自己,请尝试以下方法: (cdr (list 1 2 3)) (cdr (cdr (list 1 2 3))
(cons'a空)
也不介意(cons'a'())
。最后,空单词和空列表之间的区别是什么 最后一对的cdr指向空列表'() 最后一对的cdr指向空列表'() 如果您计算符号为空
,则可以找到您所有问题的答案。它被定义为等于”()
,空列表,这是最后一个cdr指向的内容。要说服自己,请尝试以下方法:
(cdr (list 1 2 3))
(cdr (cdr (list 1 2 3)))
(cdr (cdr (cdr (list 1 2 3))))
如果您计算符号
为空
,则可以找到您所有问题的答案。它被定义为等于”()
,空列表,这是最后一个cdr指向的内容。要说服自己,请尝试以下方法:
(cdr (list 1 2 3))
(cdr (cdr (list 1 2 3)))
(cdr (cdr (cdr (list 1 2 3))))
DrScheme不介意您的
cons
-ing,因为cons
可以做的不仅仅是构建列表。从参考资料来看
(cons a d) → pair?
a : any/c
d : any/c
这不是一个列表,但它仍然可以让你这样做
> (car (cons 1 2))
1
> (cdr (cons 1 2))
2
但无论如何,“空单词”和“空列表”是同一个对象,可以通过
> (eq? empty '())
#t
DrScheme不介意您的
cons
-ing,因为cons
可以做的不仅仅是构建列表。从参考资料来看
(cons a d) → pair?
a : any/c
d : any/c
这不是一个列表,但它仍然可以让你这样做
> (car (cons 1 2))
1
> (cdr (cons 1 2))
2
但无论如何,“空单词”和“空列表”是同一个对象,可以通过
> (eq? empty '())
#t
虽然它回答了我的一部分问题,但我刚刚意识到cdr不必指向空。我可能会有一个不合适的列表,比如(b.d)。无论如何,谢谢。虽然它回答了我问题的一部分,但我刚刚意识到cdr不必指向空。我可能会有一个不合适的列表,比如(b.d)。无论如何,谢谢。所有列表都由一系列列表组成,每个列表长度为2。例如,(1 2 3)实际上是长度为2的列表:第一项为1,第二项为(2 3)。该内部列表也是长度为2的列表:第一项为2,第二项为(3)。第二项实际上也是一个两项列表:第一项是3,第二项是()。cons('a'())返回('a),因为它实际上是('a'.())。所有列表都由一系列列表组成,每个列表的长度为2。例如,(1 2 3)实际上是长度为2的列表:第一项为1,第二项为(2 3)。该内部列表也是长度为2的列表:第一项为2,第二项为(3)。第二项实际上也是一个两项列表:第一项是3,第二项是()。cons('a'())返回('a),因为那实际上是('a')()。