2005-09-04から1日間の記事一覧

実装の共有

継承というのは、純粋に実装の共有をするという目的には、必ずしも適っていないところに問題があるのだと思います。つまり、継承は、振る舞いとその実装の両方を共有する機構であって、その2つを区別できないという問題を持っているのです。 振る舞いのみを…

委譲

[id:soutaro:20050903:1125679890] 委譲って、こういうやつですよね。 class Printer { Writer writer; void write(String s) { writer.write(s); } ... } class Writer { void write(String s) { ... } } これは、私もやらないですね。下のように書けばいい…

memoizeと不動点

[id:lethevert:20050903:p2] できた!! fix g = f where f = g f whereを使えば書けたんだ。 ということで、memoizeも含めたConcurrent Clean版は↓です。(リストの選択に必要な計算量はこの際無視で) module memo import StdEnv Start = map fib [1,2,3,4…

ダイナミックな型システム

[id:m-hiyama:20050903:1125731280] 僕もあまり詳しくないですが、RubyのDuck Typingなんかは、こういうのを上手く扱えそうな気がします。動的にメソッドを追加する場合も、大丈夫かな? でも、Duck Typingって、同音異義語/句に対して弱そうだが、どうなん…