>>738
バグの事じゃない。
数学の関数と同じ、同じ引数渡せば同じ回答が返ってくる。
それ以外の事象全てが副作用。
副作用があっても意図通り動くのもあるし、むしろその方が効率は良い。
ただプログラムの見通しが悪いだけ。
マルチスレッドプログラミングとかで副作用の無い関数型言語が注目されたのもマルチスレッドプログラミングの見通しを良くしてバグを作らない様にしたいから。
(あと状態を持たない事でマルチスレッドプログラミングで分割し易いってのもある)

シングルスレッドではコード短く出来るとか再利用し易いとかで、(シングルスレッドでの)性能追求したら副作用バリバリの方が効率は良い。