argius note

プログラミング関連

Ruby

メッセージング?

Javaから入門した人には難しいんじゃないかと思われる概念。私もちゃんとわかってる訳じゃないですが。 Rubyの場合、メソッドコールはメッセージの送出であり、そのメソッドが実装されているかどうかに関わらず、オブジェクトに通知されます。ただ、オブジェ…

iterate with Proc

ブロックに関連する処理で連鎖。 Procは組込みクラス。ブロック内の手続きをオブジェクトとして扱う、というより、手続きさえオブジェクトである、といったほうがたぶん正しい。あまり現代ぽくない言い方すると「名前無しサブルーチン」オブジェクトとでも。…

固定長テキストを項目でソートする (2)

http://d.hatena.ne.jp/argius/20060302/1141309017 前回、どこかRubyらしくないよなー、と思っていたが、なるほど、ブロックの書き方でした。記号を排して書きたいのだから、ブロックはdo-endで書いたほうが良いね。 # 固定長テキスト→配列 rows = [] while…

Logger

重要度の名前が良い。log4jと同じだからだろうけど。 require 'logger' log = Logger.new(STDOUT) log.level = Logger::INFO if log.debug? log.debug("DEBUG!") end if log.info? log.info("INFO!") end Rubyはpredicateメソッド(述語?)がかわいい。なん…

固定長テキストを項目でソートする

http://d.hatena.ne.jp/argius/20060120/1137783185 RubyはPerlにできることなら絶対できるはず。とりあえず練習に、先日書いたCVSの出力を編集するPerlスクリプトをRubyで書き直してみた。(shebangは省略) # 固定長テキスト→配列 rows = [] while (line =…

どんどん使う予定

さあ思い出そう、と思って、昔自分が書いたサンプルを見てみたら、セミコロンが付いてますが。毛が生えてるみたいで何かいやだ。*1 http://argius.net/sympathy/compare_11.html *1:中カッコとセミコロンがないのがつるつるした感じです。

BasicObject

http://www.rubyist.net/~matz/tb.rb/20060228 Basicというキーワードが使われていることへのオマージュ。他に意味は無い。

RDE vs RDT

Rubyは、今最も美しく記述できる言語だと思う。Perlはある意味の美しさは持っているが、意味がわかってこそであって、Rubyはコードの意味が分からなくても美しく見えるところが違う*1。Rubyのコードは、簡潔で流麗だ。 しかしながら、IDEが無いとダメな身体…