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

SyncEnumerator

rucilaさんの日記を見て、enumeratorという単語で調べていたら、SyncEnumeratorというクラスを発見しました。何が'sync'なのだろうと思いましたが、require 'generator'を見つけて納得です。 require 'generator' enumerator = SyncEnumerator.new(["A", "B"…

Signal.list

Signal.listで、シグナル名とシグナル番号の一覧がハッシュで得られます。 s = Signal.list p s p s.sort p s.sort {|a, b| a[1] <=> b[1]} s.sort {|a, b| a[1] <=> b[1]} .each do |sig_val| printf("%-6s %d\n", sig_val[0], sig_val[1]) endそうか、Ruby…

Resolv

ライブラリresolvを使って、ホスト名の名前解決を行います。 require 'resolv' puts Resolv.getaddress("d.hatena.ne.jp") Resolv.each_address("www.yahoo.co.jp") do |ip| puts ip end

Ripper

疑問:Ripperを使ってみようと思いました。refe ripperでは見つかるけれど、requre 'ripper'ではno such file to load -- ripper (LoadError)というエラーがでます。ruby -v は ruby 1.8.4 (2005-12-24) [i386-mswin32] 追記:なかむら(う)さんから「Ripper…

strip

String#stripで前後の空白を削除できます(元の文字列はそのままで、削除した新しい文字列を返します)。 [ "left ", " right", " center ", "\ttab\r\n", "\nnewline", "\rcr lf\n", ].each do |s| p s.strip end実行結果です。 "left" "right" "center" "t…

Bindingと継続の類似性

bindingで作った「もし再帰の深みで評価したら」のサンプルを見ていて、「《Binding》って《継続》と似ているところがあるのでは?」と思いました。その「似ている」感じを表現するため、サンプルを作ってみました。 $env = Array.new def factorial(n) f = …