[#11952] NORETURN — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

24 messages 2001/01/10
[#11956] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11957] Re: NORETURN — matz@... (Yukihiro Matsumoto) 2001/01/10

まつもと ゆきひろです

[#11958] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11959] CVS branches (Re: Re: NORETURN) — matz@... (Yukihiro Matsumoto) 2001/01/10

[#12087] string#index, gsub, []= のバグ? — Beyond <beyond@...>

18 messages 2001/01/27
[#12091] Re: string#index, gsub, []= のバグ? — matz@... (Yukihiro Matsumoto) 2001/01/27

まつもと ゆきひろです

[ruby-dev:12060] Re: break from proc-closure (Re: [ruby-list:27277])

From: m_seki@...
Date: 2001-01-22 03:34:49 UTC
List: ruby-dev #12060
咳といいます。


> |Procでのbreak, retryについてです。
> |
> |ブロック付きメソッドのブロック側の 
> |  * break は、ブロック付きメソッドの終了
> |  * retry は、ブロック付きメソッドをやり直し
> |  * next は、ブロックの終了
> |  * redo は、ブロックのやり直し
> |を示しています。
> |
> |dRubyでは Proc を呼んだ結果から評価した値とbreak/retryがあったことを
> |取り出してブロック付きメソッドをプロセス間で再現しています。
> 
> なるほど、状況が分かってきました。
> 
> ただ、breakはブロック付きメソッドの終了を意味しますので、
> proc.callは「Proc.newで固定されたブロックの呼び出しを行う」
> と見なせるので、breakはproc.callを例外なしに終了させるもので
> はないかと思います。
> 
> あとはどのような逃げ道を用意するかですね。
> 
> 要するにあるprocがある時に、そのprocがbreakで終了したかどう
> か判定する方法があれば良いんですよね。違う?

そうです。

  proc.call(*args)	# これが call でなくても良いのです。
                        # yield_call とか‥

が 正常終了した or breakした or retryした という情報が欲しいのです。

redoはprocが自分でやり直してくれるし、nextは正常終了と等しいので
いまのところ(わからなくても)大丈夫です。


ひょっとしてイテレータをかぶせたらわかるのかな。だめか‥。


In This Thread