且对相同的输入产生相同的值，就没有副作用。指令式赋值，在销毁旧值并使之不可获得时，在将旧值替代为新值时，就可能介入了副作用；为此在LISP和函数式编程中，这被称为“破坏性”（destructive）赋值，类似于“破坏性更新”。在纯函数式语言比如Haskell中，单赋值是赋值的唯一形式，这里没有在指令式语言意义上的变量，而是命名的常量值，并具有可能的合成（compoud）本性，即它们的元素"在需要时"被逐步的定义。纯函数式语言，由于值之间相互独立，可以提供在并行计算上的优势，它避免了顺序的一时一步执行的冯