[#48450] 1.8.7と1.9.2の挙動の違いについて — "Jun'ya Shimoda" <jun-shimo@...>

下田です。

13 messages 2011/10/09

[ruby-list:48454] Re: 1.8.7と1.9.2の挙動の違いについて

From: dezawa <dezawa@...>
Date: 2011-10-10 00:08:08 UTC
List: ruby-list #48454
出沢です

ご質問の 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 ならこう(簡単に)書けるよ、
ということを示されるのが良いのではないでしょうか。



In This Thread