In informatica si dice che una funzione produce un effetto collaterale (in inglese side effect) quando modifica un valore o uno stato al di fuori del proprio ambito locale. Per esempio, una funzione ha un effetto collaterale quando modifica una variabile globale o statica, quando modifica uno dei suoi argomenti[1], quando scrive dati su di un display o su di un file o quando invoca altre funzioni con effetti collaterali.
- ^ Una funzione può ricevere un argomento per valore o per riferimento. Se la funzione modifica un argomento passato per valore, cambierà solo la copia locale del valore e ciò non influenzerà l'ambiente esterno. Lo stesso succede se l'argomento è passato per riferimento e si modifica il riferimento stesso, non il dato a cui punta. Nel caso in cui invece si modifica un dato puntato dal riferimento, si influenza l'ambiente esterno alla funzione ed avviene un cosiddetto effetto collaterale.