很明显,迭代器对象X
,方法:X.next()
巨蟒2.xX.__next__()
巨蟒3.x
不是引用透明的,因为每个调用都返回不同的结果。
但是,我只需要确认我是对的。谢谢。
最佳答案
你说得对,迭代器可以在每次调用时返回不同的结果,因此不能将其称为引用透明的。
然而,使用iterable的聚合操作可以是引用透明的,即使各个步骤不是。例如,list('cat')
是确定性的和引用透明的事件,尽管list的实现在字符串迭代器上重复进行下一次调用。
关于python - 下一个方法对于python迭代器是否是参照透明的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10569251/