Lai*_*uan 56 function idempotent pure-function
我读了维基百科对幂等性的解释.我知道这意味着函数的输出是由它的输入决定的.但我记得我听过一个非常相似的概念:纯粹的功能.我谷歌他们但找不到他们的区别......
它们是等价的吗?
SLa*_*aks 56
幂等函数可能导致幂等副作用.
一个纯粹的功能不能.
例如,设置文本框文本的函数是幂等的(因为多个调用将显示相同的文本),但不是纯粹的.
类似地,通过GUID(而不是按计数)删除记录是幂等的,因为在后续调用之后该行保持删除.(其他电话什么都不做)
Ano*_*on. 17
一个纯粹的功能是没有地方输出副作用的功能完全由输入确定的-也就是说,调用f(x)
会产生相同的结果,不管你有多少次调用它.
的幂等函数是一个可以在不改变结果来多次应用-即,f(f(x))
是一样的f(x)
.
函数可以是纯函数,幂等函数,两者都可以.
小智 6
功能纯度意味着没有副作用。另一方面,幂等性意味着函数对于多次调用是不变的。
每个纯函数都是副作用幂等的,因为纯函数即使被多次调用也不会产生副作用。然而,返回值幂等性意味着 f(f(x)) = f(x) 不受纯度影响。