【发布时间】:2016-05-22 21:54:14
【问题描述】:
在 LISP 的一个函数式语言家族中,并且可以定义变量,
(defvar a '(1 2 3))
(defvar b (cons a (cdr a)))
(rplacd a '(5))
将b 列表创建为
((1 5) 2 3)
!!我很惊讶。这些代码片段是如何列出这个列表的?谁能解释这些令人困惑的命令?!
【问题讨论】:
-
这不是我尝试时得到的。
a是(1 5),b是((1 5) 2 3)。 -
顺便说一句,Lisp 通常不被认为是一种函数式语言。
-
@Barmar 你是对的。我纠正它。
-
您能帮我添加更多细节吗? @Barmar
-
用盒子和指针表示所有的conses来绘制列表,你应该明白为什么会这样了。
标签: list functional-programming lisp