LISP(或一般)中破坏性和非破坏性构造的正确定义是什么。我试图寻找实际含义,但我只发现了这些术语的很多用法,而没有实际解释它们。
据我了解,破坏性函数是指一个函数,它改变构造(或变量)的含义 - 所以当我将列表作为参数传递给函数时,它会改变它,它被称为破坏性操作,因为它会更改初始列表并返回一个全新的列表。这是正确的还是有一些例外?
那么例如设置一个破坏性函数(因为它改变了 x 的值)?我认为不是,但我不知道如何,我将如何证明这一点。
(set 'x 1)
抱歉,可能是一个非常基本的问题....感谢您的任何回答!