2004-11-27から1日間の記事一覧

スーパータイピング

hypersetって何?なレベルなのだけど。;-)Set uかuかによってアルゴリズムが違うのでタイプクラスを使わないとできなさそう。 マルチパラメータタイプクラスを使わずにできるだろうか? 問題 f :: k -> A a -> B k として型 a または C a をとれるような関数…

領域を無駄にしない

ツリーの端のために領域が無駄になるという指摘は面白かった。こういう時にもViewsが役にたちそう。実現しそうにないけれど、個人的には非常に欲しい機能だ。 真似して data ViewOfT = VT (VT a) a (VT a) | VE toView (N a) = VT a E E ... fromView (VT a …

インターフェイス改良

きのうのmemo関数にちょっと工夫をすれば、インターフェイスもこのようになる。 fib' = memo1' (\f n -> case n of 0 -> 0 1 -> 1 _ -> f (n - 1) + f (n -2))これで一次元版は一応の完成。 memo1' f n = memo1 (\n xs -> f (\m -> shift xs n m) n) n where…