[#43857] Hashへの生成順は保障されないのか? — Hiroshi Kasamatsu <qqmn89yb9@...>

こんにちは、笠松と申します。

88 messages 2007/08/18
[#43858] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/18

Hiroshi Kasamatsu wrote:

[#43862] Re: Hashへの生成順は保障されないのか? — Hiroshi Kasamatsu <qqmn89yb9@...> 2007/08/19

皆さん、早速のレスありがとうございます。

[#43863] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/19

Hiroshi Kasamatsu wrote:

[#43870] Re: Hashへの生成順は保障されないのか? — Hiroshi Kasamatsu <qqmn89yb9@...> 2007/08/20

Urabeさん、笠松です。レスありがとうございます。

[#43872] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/20

Hiroshi Kasamatsu wrote:

[#43873] Re: Hashへの生成順は保障されないのか? — cuzic <cuzic@...> 2007/08/20

cuzic です。

[#43874] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/20

cuzic wrote:

[#43875] Re: Hashへの生成順は保障されないのか? — Tanaka Akira <akr@...> 2007/08/20

In article <46C9E7BB.4060100@ruby-lang.org>,

[#43876] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/20

おお、田中さんを満足させる説明ってのは結構ハードル高そうだな。

[#43878] Re: Hashへの生成順は保障されないのか? — しん <dezawa@...> 2007/08/20

# 出遅れたので、レスすべきメールが判らなくなってしまったので、手近なのに

[#43879] Re: Hashへの生成順は保障されないのか? — Yukihiro Matsumoto <matz@...> 2007/08/20

まつもと ゆきひろです

[#43887] Re: Hashへの生成順は保障されないのか? — Nobuyoshi Nakada <nobu@...> 2007/08/21

なかだです。

[#43891] Re: Hashへの生成順は保障されないのか? — SASADA Koichi <ko1@...> 2007/08/21

 ささだです。

[#43892] Re: Hashへの生成順は保障されないのか? — Yukihiro Matsumoto <matz@...> 2007/08/21

まつもと ゆきひろです

[#43893] Re: Hashへの生成順は保障されないのか? — Nobuyoshi Nakada <nobu@...> 2007/08/21

なかだです。

[#43899] Re: Hashへの生成順は保障されないのか? — "Akinori MUSHA" <knu@...> 2007/08/21

At Tue, 21 Aug 2007 13:59:43 +0900,

[#43900] Re: Hashへの生成順は保障されないのか? — SASADA Koichi <ko1@...> 2007/08/21

 ささだです。

[#43906] Re: Hashへの生成順は保障されないのか? — "Akinori MUSHA" <knu@...> 2007/08/21

At Tue, 21 Aug 2007 19:29:11 +0900,

[#43921] Re: Hashへの生成順は保障されないのか? — Tanaka Akira <akr@...> 2007/08/22

In article <86sl6dgikh.knu@iDaemons.org>,

[#43926] Re: Hashへの生成順は保障されないのか? — Tanaka Akira <akr@...> 2007/08/23

In article <87zm0kaz60.fsf@fsij.org>,

[#43927] Re: Hashへの生成順は保障されないのか? — Yugui <yugui@...> 2007/08/24

Yuguiといいます。

[#43930] Re: Hashへの生成順は保障されないのか? — Yukihiro Matsumoto <matz@...> 2007/08/24

まつもと ゆきひろです

[ruby-list:43807] Re: Procの仕様について

From: eklerni <eklerni@...>
Date: 2007-08-06 16:11:05 UTC
List: ruby-list #43807
From:eklerni
#外してるかもしれませんが
スコープから外れたprocの各動作は、
Ruby1.9では以下のようになります。

def foo
proc { return }
end

foo.call # =>
#:2:in `block in foo': unexpected return (LocalJumpError)
#from :5:in `call'
#from `<main>'

def bar
proc { retry }
end

bar.call # =>
# : retry outside of rescue clause

def baz
proc { break }
end

baz.call # =>
#:18:in `block in baz': break from proc-closure (LocalJumpError)
#from :21:in `call'
#from :21:in `<main>'

さらに、proc{}をlambda{}に替えたものについても調べると、

proc lambda
1.8.6 ○  ○
1.9 ○  ×
(return,breakできないものを×、1.86のproc{}での動作を○とする)

returnできる、という関数的挙動をlambdaに限定したようです。

まとめると、

lambda {return}、lamba{break}はlambdaを抜ける。1.8.6でのproc{}はたまたま
lambdaと
同じ挙動をするが、本来期待されている動作ではないので、
スコープを外れているprocでreturn、breakを使いたい場合はlambdaを用いること。

ってことだと思います。

ruby 1.8.6 (2007-07-28 patchlevel 5000) [i386-mswin32_80]
ruby 1.9.0 (2007-08-01 patchlevel 0) [i386-mswin32_80]


In This Thread