副作用っていうのは… 関数を呼ぶ前後で、何かが変わること。 例えば、POWという関数がある。これは冪乗を求める関数だけど、呼んでも戻り値を入れる変数以外なにも変わらない。 これは副作用が無いという。数学の関数に近い。こういう命令だけじゃ(普通は)プログラムを作れない。 対してSPCLRという命令がある。これはスプライトの使用を止める命令で、呼んだ後は該当スプライトは無くなる。 関数というよりプチコンに対する「命令」で、こういうのは「作用」がある。 サブルーチンを自分で作るときは上の二つを組み合わせる。全部副作用無しなら簡単でわかりやすくてDEFに最適。とても再利用しやすい。 ところが一部に「作用」がある命令が含まれるととたんに微妙になる。例えば弾が敵に当たったら点数を増やして敵を消すという処理は何回も実行するから分離して関数にしたとする。続く。