副作用_(計算機科學)

在計算機科學中 ， 函數副作用指當調用函數時 ， 除了返回可能的函數值之外 ， 還對主調用函數產生附加的影響 。 例如修改全局變量 （ 函數外的變量 ） ， 修改參數 ， 向主調方的終端 、 管道輸出字符或改變外部存儲信息等 。 在某些情況下函數副作用會給程序設計帶來不必要的麻煩 ， 給程序帶來十分難以查找的錯誤 ， 並降低程序的可讀性與可移植性 。 嚴格的函數式語言要求函數必須無任何副作用 ， 但功能性靜態函數本身的目的正是產生某些副作用 。 在生命科學中 ， 副作用往往帶有貶義 ， 但在計算機科學中 ， 副作用有時正是 “ 主要作用 ” 。 下面是函數的副作用相關的幾個概念 ， 純函數 、 非純函數 、 參照透明性 。