- 定理と関数

2006/06/24/Sat.定理と関数

新しいプログラムのライブラリを作っている T です。こんばんは。

こういうチマチマとした部品を作るのは大好きである。

定理 = 関数

プログラムで何度も利用する処理は、サブルーチンや関数としてまとめられる。これらは数学の定理に似ている。幾何の証明で、一々ピタゴラスの定理を長々と書く人間はいない。「ピタゴラスの定理から〜」で済む。そういうところが、関数に似ているという話。

定理は全て、自明の公理から導かれる。公理には、互いに矛盾でない、互いが互いを証明できない、という性質がある。それでは、プログラムにおける公理というものも存在するのではないか。例えば乗算は、加算の繰り返し関数で実装できる。

a × b の値 answer を求める関数 multiplication を考えてみる。

answer = multiplication (a, b);

multiplication (a, b) {
 for (i = 1; i < b; i ++) { a += a; }
 return a;
}

まことにつまらない例だが、公理に近いものさえ覚えてしまえば、簡単なプログラムは大抵できてしまう。膨大なコマンドに挫折してプログラミングを諦めるのは、歴史年表を語呂合わせで覚えようとして失敗するのに似ている。

あくまで素人レベルの話だが、バンバンと小さな関数を書くことが、プログラム上達の早道かもしれない。自前で関数を書いていると、そのうち面倒になってくる。そこで初めて、探すなり調べるなりすれば良い。利用頻度が高いくせに難易度の高い関数などは、必ず先人が用意してくれている。

だからといって、最初から関数をコピー・ペーストで使おうと思っても、絶対に上手くいかないんだよなあ。ピタゴラスの定理でも、最初は自分できちんと証明するのと一緒で、やっぱりある程度は自分で書かないとね。

研究日記

終日病院。細胞から核タンパク質を抽出。今日は大漁。いつも同じようにしているつもりなのだが、どうも収量が不安定である。細胞質なら、そんなことはないんだけどな。

大人だもの

金より大切なものって何? 教えてよ金払うから