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 の基本的な考えに結びついていることがわかって面白い。