Home > Archives > 2011年06月23日

2011年06月23日

typeclass を使った Haskell プログラムが読めない……

同じ式の中に出てきている同じ名前の関数が全く別物であるという点でプログラムが読めない.型を追いかけて行かないと何が起きているのか分からないし,そもそも型推論しないと読めないプログラムって何なのよ……

でだ,typeclass に対して polymorphic な式の評価とか訳が分からなくなってくる.その式につける型アノテーションを変えると全く別の結果が出てくるとか……

で,悩んだ末にようやく悟りが開けた.typeclassの型を指定するってのは式に代入する関数集達を一気に指定するってことなのね.普通は高階関数なアルゴリズムに代入すべき関数を引数として渡すのだけど,typeclass を使った場合には型を介して暗黙にアルゴリズムに関数を引き渡していると.

うーん,これって良いことなのか悪いことなのかいまひとつわからない.特定の性質を満たしているであろう関数達というのを型で静的に確かめておけるのは良いのだけど,一方でわざわざインスタンス宣言しなきゃならないしコードは一見簡潔だけど意味を読み取りにくいし.

とりあえず,アルゴリズムをプログラムする人間の書くコード量が減るという点は理解した.

Home > Archives > 2011年06月23日

Search
Feeds

Page Top