at posts/single.html

Perlクイズ de Ruby (2)

昨日に引き続きPerlクイズに挑戦。 今日は、幹葉表示の問題をやってみた。 データの入った配列 (store) をソートしないで解けるように、 解析結果を配列のハッシュに入れるようにした。

out = []
score.each do |x|
   i = x / 10
   out[i] ||= Hash.new(0)
   out[i][x % 10] += 1
end
out.each_index do |i|
   out[i] ||= {}
   line = out[i].sort.map { |item|
      item[0].to_s * item[1]
   }
   puts "#{i} | #{line}"
end

ところで、Rubyを勉強していて気になることが2つある。 1つ目はメソッド(関数)の値を返すのに return 文を使わない(省略できる)こと。 2つ目は、変数に値がないので、その変数が格納している値(オブジェクト)の種類が静的には分からないこと。

どっちも、最初はとっつきにくい考えだと思っていたけど、 慣れてくるとこれらのことが Ruby の基本的な考えに結びついていることがわかって面白い。

関連する日記