在Lisp中创建列表可以称为';状态改变';?

在Lisp中创建列表可以称为';状态改变';?,lisp,Lisp,为了便于讨论,我们可以说,当我们在Lisp中创建列表时,这是一种状态变化吗?现在可以使用cons、list或任何其他列表创建函数 考虑一个过滤函数,它从列表中过滤奇数,只保留偶数。现在它通过创建新列表和使用递归来实现这一点。我们能说程序中有状态变化吗?假设我们已经知道译员的观点 考虑到列表是对象,并且当旧对象被删除以支持新对象时,则是状态更改,对吗 从技术角度来看,这样说有多有效。我的意思是从Lisp解释器的角度来看。这一切都归结于如何定义“状态的改变”,或者更好的是,我们正在谈论的状态。状态是

为了便于讨论,我们可以说,当我们在Lisp中创建列表时,这是一种状态变化吗?现在可以使用cons、list或任何其他列表创建函数

考虑一个过滤函数,它从列表中过滤奇数,只保留偶数。现在它通过创建新列表和使用递归来实现这一点。我们能说程序中有状态变化吗?假设我们已经知道译员的观点

考虑到列表是对象,并且当旧对象被删除以支持新对象时,则是状态更改,对吗


从技术角度来看,这样说有多有效。我的意思是从Lisp解释器的角度来看。

这一切都归结于如何定义“状态的改变”,或者更好的是,我们正在谈论的状态。状态是事物的属性,所以要回答你的问题,我们必须问“状态到底是什么?”

让我们看看几个可能的候选人:

在您的筛选示例中,我们有一个列表a。筛选器只使用偶数构建一个新的列表B

A的状态绝对不会改变。这就是构建新列表的要点

B的状态肯定改变了。在运行过滤器之前,它不存在,现在它存在

运行时环境的状态也包含所有变量,当我们在过滤列表中添加一个新符号时,它的状态肯定发生了变化


所以,回答你的问题:是的。但请记住,状态是某事物的属性,要真正正确地回答它,您必须告诉我们您对哪个状态感兴趣。

谢谢,它确实回答了我的问题。我想知道节目中的状态是否有任何变化。