副作用とは、プログラムが返す答え以外に外部へ加える変更です。たとえば、合計を計算する関数がファイルを保存したり通知を送ったりすることがあります。

時間を教えてと頼んだ相手が、さらに照明までつけていたと想像してください。その追加の操作が副作用です。

副作用が常に悪いわけではありません。多くのプログラムでは情報の保存や送信が必要です。操作がいつ何かを変えるか把握しておくと、予想外の結果を避けやすくなります。