纯函数还是有副作用

来自纯函数还是有副作用Pure functions have side-effects — The Endeavour一文:

函数式编程强调的是“纯”功能function,没有任何副作用。当你调用一个纯函数功能,你所有需要知道只是该函数的返回值。你可以相信,调用一个函数,不会导致任何状态的变化,也就不会影响后来的该函数调用。

但是纯函数只是在一定抽象水平上,每个函数还是有副作用,它用内存,花费CPU时间, Harald Armin Massa在 PyCon 2010 谈话中指出:

即使是纯函数编程也有副作用。他们使用内存。他们使用CPU。他们需要运行。,如果你看看那些邪恶的语言,他们在做斐波那契时是相当快的,但在更大的应用程序,你会得到的报告“嗯,我有一些运行时的问题。我不知道如何使它更快些,或出了什么问题。

你无法避免状态,但是你可以将应用切分为有态和无态应用,100%的纯函数是不可能的,85%纯洁度就是很好的产品了。