トップ «前の日記(2002-03-18) 最新 次の日記(2002-03-20)» 月表示 編集

日々の流転


2002-03-19 [長年日記]

λ. 論文読み会

豊田さんには悪いけど、今日はパス。僕は気まぐれなのです。ゴメンね。

そういえば、余裕があれば僕も何か読んでみたいかも。そのうちね。(ぉ

Tags: 論文

λ. 圏論

ようやくp.210で、あと約150ページ。こっからUniversal Mapping Property等の少し本格的な話に入ってくのかな。2/28に書いたような直和と直積の圏論的な定義ももうすぐ出てくるはず。

そういえば、有野さんが何を使って勉強してるのか、ちょっと気になる。

それから、つかぬことを訊きますが、GTMって何でしょうか?

Tags: 圏論

λ. SyncEnumeratorを使ったEnumerable#member?の拡張

ある集合とその補集合が共に帰納的可算ならばその集合は帰納的なので。

でも名前が悪いし、そもそも使い道無さそうだなぁ……

ところで、最近こういうどーでも良いコードを書いてると何だか楽しい。

require 'generator'

module Enumerable
  @@orig_member_p = instance_method(:member?)

  def member?(item, complement = nil)
    unless complement
      @@orig_member_p.bind(self).call(item)
    else
     e = SyncEnumerator.new(self, complement)
     e.each{|a,b|
       return true  if e.end?(1) or item == a
       return false if e.end?(0) or item == b
     }
     raise "not found either in self or in complement"
    end
  end

  alias include? member?
end
Tags: ruby

λ. tDiaryサイト全文検索

Namazuで検索できるようになってる日記は多いので、それをnamaduで繋げることが出来たら、カッコよさげかも。

Tags: tDiary
本日のツッコミ(全4件) [ツッコミを入れる]
ψ (2002-03-20 13:42)

おお!補集合も考えると member? は必ず答えを出すメソッドになる<br>のですね。目から鱗が。<br>しかしここの @@orig_member_p ってのは Enumerable 固有の変数に<br>なるんで、これだとこれを include したクラス全部で共有してしま<br>いますよ。モジュールからそれを include したクラスのクラス変数<br>にアクセスするのは eval 系を使ったり結構手間がかかるんじゃな<br>いかな。

ψ (2002-03-20 13:46)

GTM ゆうたら Graduate Texts in Mathematics っていう<br>Springer のシリーズです。

ψ (2002-03-21 10:51)

失礼!勘違いしてました。Enumerable#member? って組み込みで<br>既にあるんですね。だからこのコードでいいのでした。<br>後、alias を使う方法もありますね。<br>なんか日記につっこむの初めてだったから、つっこみまくって<br>しまいました。(^^;

ψ さかい (2002-03-21 14:15)

原さんほどの人に驚いていもらえるなんて、これは書いた甲斐がありました。<br><br>aliasじゃなくて、クラス変数にUnboundMethodを保存すれば、他の誰かがmember?を同じように置き換えても安全かなと思ったのですが、クラス変数名がバッティングしたらやっぱり同じですね。むむ。