From: dezawa Date: 2011-10-10T09:08:08+09:00 Subject: [ruby-list:48454] Re: 1.8.7と1.9.2の挙動の違いについて 出沢です ご質問の 1.8 と 1.9 の違い、ではないので申し訳ないのですが 2点ほど プログラム. 1 ですが > 1.9.2では「10」となります(期待値) こうなりました? > if res.to_s.length > 1 >  return calc(res.to_s) > else これが効いて 1 になっちゃいません? で、蛇足の本題?ですが > のようにscanとjoinが必要な理由を初心者に説明するのはきついです。 > これだと、自信を持って「Rubyの方がいいよ」とは言いづらいです。 の所です。 「期待値 10」と言うことは、これらの例題は 1234 → 1+2+3+4 =10 を再帰を使って解く という事を(PHPと比較して?)示す というのを意図されているのかと拝察します。 それって相手の土俵に乗ってる様な気がします。 たしか ruby は再帰はあまり得意ではなかった(最適化の点で) とも思いますし。 「1234 → 10 を解く」 にまで戻って、NARUSEさんが示された inject を使うとかするとか、 それがハイレベルすぎるようだと避けるにしても、   PHPのアルゴリズムをrubyに置き換える のではなく、   ruby ならこう(簡単に)書けるよ、 ということを示されるのが良いのではないでしょうか。