每个纯函数都是幂等的吗?
如果我没有在官方Angular.js 教程中看到这个声明,我就不会问这么疯狂的问题:
过滤函数应该是纯函数,也就是说它应该是无状态的和幂等的。Angular 依赖于这些属性,仅在函数的输入发生变化时才执行过滤器。
这似乎暗示了一个纯函数应该既是无状态的又是幂等的,这与我认为的纯函数的常见定义不符。
事实上,它甚至不匹配页面中下面的示例,其中反转字符串中的字符是一个过滤器的示例:显然,反转字符串会更改字符串,如果字符串反转,它会再次更改再一次。
更奇怪的是:如果您查看该教程中链接的纯函数的 Wikipedia 页面(我只能发布一个链接,因为我是新用户,抱歉...):它报告sin ( x ) 作为一个示例纯函数。
所以,根据 Angular.js,正弦是幂等的,对吧?
我错过了什么?