Rubyでは、returnが書かれていないとき最後に実行した文の値が戻り値になります。 def method "hello" if false end p method #=> nil 上で、表示されるのがfalseではなくnilなのは、ifの条件式が成り立っていないときのif文の値はnilだから、と理解しました…
ルートの無限入れ子クイズ(問題編+解答編)をRubyで実験してみます。 a = Math.sqrt(2) 20.times do |k| p a a = Math.sqrt(2 * a) end 実行結果は以下です。収束しそうな様子が読み取れますね。 1.4142135623731 1.68179283050743 1.83400808640934 1.915…
リスト中に登場する回数の多い要素トップ N を計算するとき、どんな風に書きますか? ランキングの集計 - まめめも via http://d.hatena.ne.jp/sumim/20070619/p2 たとえば、以下のように書きます。 ary = %w(foo bar foo baz foo bar qux foo bar qux quux)…
Rubyで、数字だけの文字列が出てきたとき、Perlの数値コンテキストの気分になっちゃうとエラーになるので注意。 [ "314", "159", "265", "358" ].each do |n| puts n + 1 end #=> in `+': can't convert Fixnum into String (TypeError) Kernel#Integerを使…
整数として処理したければ、オブジェクトがto_iという振る舞いを持っていることを期待してなんでもとにかくto_iしてしまうのがDuck Typingなのかなと思いました。 Duck Typing? - 18 til i die (another phase) なるほど、そうですね。 そういえば、Duck Typ…
この土日はRuby会議2007があります。関係者のみなさま、頑張ってください。6月9日のセッション壱の最後にはJRubyがありますね。 Ruby has become one of the fastest-growing languages in the world. Java is the most widespread platform in the world. J…
Ruby on Railsのscaffoldで生成したコントローラを読み、スーパークラスのApplicationController経由でActionController::Baseをちらちらと読んでいます。renderメソッドを読んで、少しわかった気分になりました。 そのあとPaginatorクラスをすこし読んで「…
何となく、Rubyを使ってSQLite3で遊びたくなりました。 1. CREATE TABLEでテーブルを作ります require 'sqlite3' SQLite3::Database.new('rubyco.db').execute_batch(<<-'EOD') CREATE TABLE people ( name TEXT ,mail TEXT ); INSERT INTO people VALUES ('…