benchmark.rb*1を読んだ

読もうと思った理由

以下のことが知りたいと思った。

  • (あとで書く)

読み終わって気づいたこと(あとで整理する)

procオブジェクトなら配列に格納できる
  a<<proc{...}

from: Benchmark.item

operator(演算子)を引数にとって、評価する関数の書き方
def op_sum(op,a)
  case op
    when "+" : x=0
    when "-" : x=a.shift
    when "*" : x=1
    when "/" : x=a.shift
    else
      puts "ゴメン、まだ無理"; return
  end
  a.inject(x) {|result,e| result.send(op,e)}
end

def plus_sum(a)
  op_sum(:+,a)
end
	#今まで、1つずつinjectで定義していたww
#plus_sum((1..10).to_a)
	#=>55

from:「TMS.+(-,*,/)」,「TMS.memberwise」

必要な要素を含んだ配列を得る方法、
def to_a
  [@label,@utime,@stime,@cutime,@cstime,@real]
end
#a=[];a<<@laberu;a<<@utime...ってしてた。

from: TMS.to_a

nonzero?

riで調べると便利な使い方が書いてある。

直接呼ばれたときだけ、実行する部分の記述の仕方。
if__FILE__==$0
  #ここに実行したい処理を記述
end
  • __FILE__=現在のファイルの名前
  • $0   =呼び出したファイルの名前