«前の日記(2007-07-19 (木)) 最新 次の日記(2007-07-21 (土))» 編集
にっき
Google
2003|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|10|12|
2015|01|12|
2016|01|12|
2017|01|

2007-07-20 (金) [長年日記]

_ h-index を Ruby で書いてみた

Ruby 的に書くなら、

class Array
  def hindex
    sort.reverse.each_with_index do |item, index|
      return index if item <= index
    end.size
  end
end

ですかね。size メソッドを呼んでるのが無駄っぽいですが。

Ruby1.7 以降であれば、

class Array
  def hindex
    sort.reverse.inject( 1 ) do |result, item|
      break result if item < result
      result + 1
    end - 1
  end
end

とも書けます。Ruby を知らないと全く意味不明ですが。

追記:↓こっちのほうが分かりやすいね。

class Array
  def hindex
    sort.reverse.inject( 0 ) do |result, item|
      break result if item <= result
      result + 1
    end
  end
end

_ Firefox拡張機能(extension)の作り方

Extension の開発は日本語のドキュメントがあまりないのでメモ。しかもよくまとまっている。


«前の日記(2007-07-19 (木)) 最新 次の日記(2007-07-21 (土))» 編集