Perlクイズ de Ruby (2)
2004-04-25
昨日に引き続き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 の基本的な考えに結びついていることがわかって面白い。