Cotton Bolls: Name and Conquer
« 謹賀新年 | トップページ | 期待値のデータ構造の作成 »
2004.01.02
Name and Conquer
オブジェクト倶楽部のメーリングリストに平鍋さんがソフトウェア原則の連載記事を書いている.
http://objectclub.esm.co.jp/ml-arch/magazine/24.html
これによると,数学の問題を解く方法は大きく2つの方法に分けられるそうだ.
- Divide and Conquer
- Name and Conquer
Divide and Conquerは,分割統治法としてよく知られるものだ.プログラミングで初めてこのことに気付かせてくれたのは,結城浩さんの「C言語プログラミングのエッセンス」だったように思う.繰り返しの意義について,結城さんはこう書いている.
大きくて難しい問題を,小さくて易しい問題の繰り返しとしてとらえよ.
プログラミングが難しくてわからなくなったときは,いつもこの言葉を思い出すようにしている.
後者のName and Conquerは平鍋さんの記事を読むまで知らなかった.オブジェクト指向は名前が大切だとずっと思っていたが,それを表す言葉として非常にいいなと思った.
名前の重要性は,大学時代に学んだ数学で実感した.関数論は,複素数上で定義された関数を扱う数学の一分野だが,「正則」という概念を導入することで非常に綺麗な理論が展開できる.そのとき「正則」を考えたコーシーはやっぱり天才だと思った.
数学やソフトウェア以外にも,十二国記という小説で名前に関する面白い記述を見つけた.ちょっと引用してみよう(小野不由美著「十二国記 風の海 迷宮の岸(上)」より).
「使令を繋ぎ,守る鎖が『名前』です。麒麟は気迫でもって妖魔を引きだし、相手の名を読みとり、その名をあらためて与えて己の僕とする。妖魔は気迫でもって麒麟の力を測り、名を受けて将来死体を得る権利を手に入れる。――折伏とはそういうことです」
この小説では,麒麟は最高級の神獣として登場する.麒麟は,妖魔を使令としてもつことができるのだが,妖魔を使令にすることを折伏(しゃくぶく)といい,そこで名前が重要な役割として出てくる.文章を書く人も名前に関しては敏感で,いつも深く考えているのかもしれない.
11:00 AM | 固定リンク
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/67221
この記事へのトラックバック一覧です: Name and Conquer: