2006-03-19から1日間の記事一覧

binding

Kernel#bindingを使ってBindingオブジェクトを得ると、「環境」(評価を行うためのコンテキスト情報)を得ることができます。evalの第二引数にBindingオブジェクトを渡すと、その環境を用いて式を評価することができます。 ri Bindingの解説によれば、Kernel…

alias

id:walf443さんの記事を読んでいて、「alias は構文なのでメソッドの中では使えない」というrefeの記述を見ました。へえ…と思って試します。 def rubyco puts "rubyco" end def change(x) if x alias org_rubyco rubyco end end change(false) org_rubyco #=…

イテレータ変換

内部イテレータを外部イテレータに変換します。 あ、えーと、一言で言えばeachをnextに変換するということです。 each-ableなコレクションを渡してIteratorオブジェクトを作ります。 callccを使います。 最後に達したときにはnextはnilを返し、自動的にrewin…