Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
对我来说, Iterator 对象,方法似乎很明显X:
X
X.next()
X.__next__()
不是引用透明的,因为每次调用都会返回不同的结果。但是,我只需要确认我是正确的。谢谢。
你是对的,迭代器可以在每次调用时返回不同的结果,所以它不能被称为引用透明的。
但是,使用可迭代对象的聚合操作可以是引用透明的,即使各个步骤不是。例如,即使list的实现对字符串迭代器进行重复的next调用,list('cat')它也是确定性和引用透明的。
list('cat')
它在引用上是透明的X。该方法本身不会改变透明度,但可迭代对象可以根据需要简单或复杂。