プログラミングにおける副作用
プログラミングにおける副作用の定義はないが、以下の関数を指すことが多い 1.引数以外の要因で結果が変わってしまう関数
スコープ外の変数を参照している処理
実行タイミングや処理順によって関数の結果が変わってしまう
2.「引数以外の要因で結果が変わってしまう関数」
スコープ外の変数に影響を与える処理
グローバル変数を変更したり、与えられた配列に要素を加えてしまったりなど
再利用が難しい
処理の予測が困難
「副作用=書くべきではない」ではなく、「副作用=適切な場所に配置するべき」という扱い
副作用がなければ外界に影響を与えることは出来ないのでうまく付き合う術を知っておくと良い