在并行计算中经常用到纯函数,什么是纯函数?
首先,纯函数是幂等的— 这意味着对纯函数的调用次数没有限制。其次,无论调用纯函数多少次,只要给定相同的输入,它都会产生相同的结果。第三,纯函数没有副作用:无论您使用它做什么,纯函数都不会更改您的程序中的其他任何元素。
如果您想编写纯函数,请记住,最后这个特征最为重要。实质上,函数纯度有两个规则:
函数不会更改任何元素。
函数不依赖于任何可能更改的元素。
纯函数绝不会在执行期间引起更改或发生更改。比如:
someCollection.stream()
.parallel()
.map(anyFunction) ...;
这里的anyFunction就应该使用纯函数比较好了。