【发布时间】:2013-06-11 08:37:24
【问题描述】:
LISP(或一般而言)中破坏性和非破坏性结构的正确定义是什么。我试图寻找真正的含义,但我只发现了这些术语的很多用法,而没有真正解释它们。
据我了解,破坏性函数是指一个函数,它改变了构造(或变量)的含义 - 所以当我将列表作为参数传递给函数时,它改变了它,它被称为 破坏性 操作,因为它改变了初始列表并返回一个全新的列表。这是正确的还是有一些例外?
那么例如设置一个破坏性函数(因为它改变了 x 的值)?我认为不是,但我不知道,我该如何证明这一点。
(set 'x 1)
抱歉,可能是一个非常基本的问题....感谢您的任何回答!
【问题讨论】:
-
另见此问题:pushnew without place support. Is it considered a destructive macro?。那里的一些答案讨论了破坏性和非破坏性构造的概念。
标签: functional-programming lisp definition