柔軟なプログラム

id:selvaggioメモ。変更が容易なプログラムとは、に対する意見の相違。

お題は『90度回転したグラフを書きたい。だからそのためには、各点のx座標とy座標を入れ替える必要がある。』。

書いたのは俺だから、俺の意見の方がもっともらしく見えるようになってるかもしんない。

id:selvaggioの場合:一般化

これは、要するに描画前に座標変換をしたいんだろ。
で、座標変換ということは、行列を使えばいいんだよ。行列を使えば、例えば45度回転だってできるぜ。
え?平行移動も使いたい?じゃあ、次元を一個増やして同次座標系を使おうぜ。

『単純にx座標とy座標を入れ替えれば良いじゃん』だって?そんなことしたら、機能追加したときに書き直さないといけないじゃん。

id:mzpの場合:局所化

とりあえず、x座標とy座標と入れかればいいんでしょ。だったら、そういう関数を書けばいいじゃん。
え?変更が大変だって?そのために、関数として切り分けて変更範囲を局所化するんじゃん。もっと柔軟性が欲しければ、高階関数を使えよ。

『行列を使えよ』だって?そんなことしたら時間がかかるじゃん。