程序設計中,若一個函數符合以下要求,則它可能被認為是純函數

  • 此函數在相同的輸入值時,需產生相同的輸出。函數的輸出和輸入值以外的其他隱藏信息或狀態英語State (computer science)無關,也和由I/O設備產生的外部輸出無關。
  • 該函數不能有語義上可觀察的函數副作用,諸如「觸發事件」,使輸出設備輸出,或更改輸出值以外物件的內容等。

純函數的輸出可以不用和所有的輸入值有關,甚至可以和所有的輸入值都無關。但純函數的輸出不能和輸入值以外的任何資訊有關。純函數可以傳回多個輸出值,但上述的原則需針對所有輸出值都要成立。若引數是傳引用調用,若有對參數物件的更改,就會影響函數以外物件的內容,因此就不是純函數。