方法，故而它们不是纯函数程序。事实上，最早被引证为函数式的编程语言，IPL和Lisp，按照当前定义都是非纯函数式语言。必然是持久性数据结构。持久性是函数式编程所要求的，如果没有它，相同的计算就可能返回不同的结果。函数式编程可以使用非纯函数式的持久性数据结构，比如，而这些数据结构不可以用在纯函数式程序中。
纯函数式编程的性质.
参照透明性.如果将一个表达式替代为它的值只在程序执行的特定点上是有效的，则这个表达式不是的。这些顺序点的定义和次序是指令式编程的理论