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

Method

RubyのMethodクラスは、メソッドのクラスです。 Methodオブジェクトは、メソッドだけではなくそのレシーバも特定していることに注意。 class String def rubyco puts "#{self}" end end "Hello!".rubyco #=> Hello! "Good!".rubyco #=> Good! m = "Nice!".me…

書籍『オブジェクト指向スクリプト言語Ruby』

この「rubyco(るびこ)の日記」を書き始めて、毎日『オブジェクト指向スクリプト言語Ruby』をはじめから少しずつ読んでいます。今日まででおおよそ半分読みました。これは良書ですね。

Rubyに++がない理由

今日の衝撃経由、ruby-list:5323にて。 「(Rubyに++がないのは)++の動作が本質的に「変数を操作する」ものであるため」とのこと。 なるほど。 変数はオブジェクトではない ++は += 1 すなわち「代入操作」である 代入操作はオブジェクトに対する操作ではなく…

モジュール練習

以下で練習として作ったモジュールReadableは、readline, readsome, readallを定義しますが、すべてreadcharに立脚します。readcharはクラスの側で実装されることを期待します。 module Readable def readuntil s = nil while c = readchar break if yield(c…

ρヒューリスティック

大きな数の因数を発見的に求めるρ法(Pollardのρヒューリスティック)をRubyで実装しました。 # 2個の素数の積を因数分解する def factor_two(given) start = Time.now one = rho(given) another = given / one elapsed = Time.now - start puts "#{given} =…