HaHaHa!(old)

2009-02-05

同じもの,違うもの,似たもの

Haskellを使ってプログラミングするとき,「同じものには同じ名前,違うものには違う名前を」ということを意識してやっているような気がする.意識してやってるが,意識してやることは無意識にやっている.そうすることが,ポリシーだとか,こだわりだとか,そういうものとしては意識していない.

そう考えるのはHaskellだからか.そんなことはなさそうだ.

「同じものには同じ名前,違うものには違う名前を」というのはプログラミング全般に通じる話だ.それどころかものを考えるときに共通する話だ.

でもとにかく,Haskellでプログラミングするときの話として考えてもらえばいいかな.

同じものというのは意外に分りにくい.同じとも,違うともいえそうな「似ている」ものというのが沢山ある.そういう時,名前はどうするか.この場合は,同じところと,違うところを分別して,違うところを同じところに対してパラメータ化する.

値の話なら関数ができるというわけだ.型の話なら引数をとる型構成子というわけですな.

プログラムができてしまうと,トップダウンで関数がでてくるように見てしまう.実際には頭の中で,非常に泥くさいコードを沢山書きすてている.このようなボトムアップがあるので自分ではちゃんと考えてプログラムを書いた気になれる.

でもこまったことに,その泥くさい過程があることをわすれてしまって,最初からトップダウンに定義したように勘違いしていることがよくある.他人にもいかにも最初からトップダウンで抽象的に考えたかのように説明してしまう.どうしたらそういうプログラムになるのかと尋ねられても,最初からトップダウンで考えればいいよ.などといってしまう.

...つづきはあとで書く...というか、考えなおしするつもり.

LennaLenna 2012/01/06 17:03 Umm, are you ralely just giving this info out for nothing?

lkspwdlkspwd 2012/01/07 22:58 Rf8gXx , [url=http://tjuqpwalpjbz.com/]tjuqpwalpjbz[/url], [link=http://tpnukudjwolp.com/]tpnukudjwolp[/link], http://gphcnbvcvxez.com/

lvfugfgavvslvfugfgavvs 2012/01/09 22:58 S08Sak <a href="http://ktuhbhsunrqd.com/">ktuhbhsunrqd</a>

ceziayceziay 2012/01/11 04:02 MQYGCr , [url=http://dmxwvijmypsz.com/]dmxwvijmypsz[/url], [link=http://exwqucoqbikz.com/]exwqucoqbikz[/link], http://wbtmliwbpuuk.com/

ゲスト



トラックバック - http://haskell.g.hatena.ne.jp/nobsun/20090205