[ruby-list:439] Re: Q. repeat

From: matz@... (Yukihiro Matsumoto)
Date: 1996-08-27 15:10:16 UTC
List: ruby-list #439
まつもと ゆきひろです.

In message "[ruby-list:437] Re: Q. repeat"
    on 96/08/27, 石塚圭樹 <keiju@shljapan.co.jp> writes:
|
|けいじゅ@SHLジャパンです. 

|では, 以下は多分バグです:
|
|10000000000.upto(10000000010) {|i|
|  print i
|}
|
|がエラー出ます. 

確かに.intの範囲を越えてループを回す事を想定していませんで
した.

|>0.99.2用のドキュメントを用意していますから(日本語・英語とも)
|>ちょっと待ってください.
|
|期待して待っています(^^;;

今6割くらいですかね.

|each(foo) {|elm| ...}
|
|と
|
|for elm in foo
|...
|end
|
|とでは, 動きが違うことがあるのですか(?_?

はい.実は

  each(foo) {|elm1| .. }
  print defined?(elm1), "\n"
  for elm2 in foo
    ..
  end
  print defined?(elm2), "\n"

を実行すると出力は

  FALSE
  TRUE

になります.{}はローカルスコープの導入という機能があり,for
にはその機能はありません.

|これって, 引数がある時は
|
|do iter(...) using foo
|  ...
|end
|
|ですか?

そうでした.

|だから, forを拡張すれば良いんじゃないかしら?
|
|例えば, 
|
|for i in 10 do upto(100)
|   ...
|end
|
|とか... ちょっと無理があるか...

  for i do 10.upto(100)
    ...
  end

ならもうちょっときれいですね.予約語が増えますけど.どうしま
しょうかねえ.
# CLUを思い出すので,それほど違和感は無い.

                                まつもと ゆきひろ /:|)

In This Thread

Prev Next