是表达式的值对于相同的输入也必须是相同的，它的求值不能有副作用。在函数式编程中，很少使用副作用。缺少副作用导致程序易于形式验证。函数式语言比如Standard ML、Scheme和Scala不限制副作用，但是编程者会习惯性的避免使用它们。函数式语言Haskell使用单子行动来表达副作用，比如输入/输出和其他有状态的计算。
并行计算.纯函数式编程简化了并行计算，因为求值的两个部份如果都是纯函数式的就会永不交互。
数据结构.纯函数式数据结构，是可以用纯函数式语