Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
下一个方法对python迭代器是透明的吗?_Python_Functional Programming - Fatal编程技术网

下一个方法对python迭代器是透明的吗?

下一个方法对python迭代器是透明的吗?,python,functional-programming,Python,Functional Programming,在我看来,迭代器对象X,方法: X.next()Python2.X X.\uuuuu next\uuuuuu()python3.X 不是引用透明的,因为每次调用都返回不同的结果。 但是,我只需要确认我是正确的。谢谢。它的引用透明性与X所允许的一样。方法本身不会改变透明度,但iterable可以是简单的,也可以是复杂的。您是对的,迭代器可以在每次调用时返回不同的结果,因此不能以引用透明的方式调用它 然而,使用iterable的聚合操作可以是引用透明的,即使单个步骤不是。例如,list('cat

在我看来,迭代器对象
X
,方法:

  • X.next()
    Python2.X
  • X.\uuuuu next\uuuuuu()
    python3.X
不是引用透明的,因为每次调用都返回不同的结果。
但是,我只需要确认我是正确的。谢谢。

它的引用透明性与
X
所允许的一样。方法本身不会改变透明度,但iterable可以是简单的,也可以是复杂的。

您是对的,迭代器可以在每次调用时返回不同的结果,因此不能以引用透明的方式调用它

然而,使用iterable的聚合操作可以是引用透明的,即使单个步骤不是。例如,
list('cat')
是确定性和引用透明的,即使list的实现在字符串迭代器上重复进行下一次调用