非纯函数式编程区别.在纯与非纯函数式编程之间的确切区别是有争议的事情。当一个程序使用了某些函数式编程概念的时候， 比如头等函数和高阶函数，它通常就被称为是函数式的。但是，头等函数不必然是纯函数式的，由于它可以使用来自指令式范型的技术，比如数组或输入/输出方法，故而它们不是纯函数程序。事实上，最早被引证为函数式的编程语言，IPL和Lisp，按照当前定义都是非纯函数式语言。必然是持久性数据结构。持久性是函数式编程所要求的，如果没有它，相同的计算就可能返回不同的结果。函数式编程可以使用非纯函数式的持久性