[#2529] concerns about Proc,lambda,block — "David A. Black" <dblack@...>
Hi --
>>>>> "D" == David A Black <dblack@wobblini.net> writes:
Hi --
Hi,
On Tue, 2 Mar 2004 08:44:25 +0900, Yukihiro Matsumoto wrote:
Hi,
On Wednesday, 3 March 2004 at 8:00:09 +0900, Yukihiro Matsumoto wrote:
Hi,
Hi,
On Wed, Mar 03, 2004 at 07:51:10AM +0900, Yukihiro Matsumoto wrote:
Hi,
On Thu, 4 Mar 2004, Yukihiro Matsumoto wrote:
Hi,
[#2575] Comment football being played... with lib/test/unit.rb — Nathaniel Talbott <nathaniel@...>
[Resent because I accidentally signed it the first time]
[#2577] problem with Net::HTTP in 1.8.1 — Ian Macdonald <ian@...>
Hello,
Hi,
[#2582] One more proc question — Dave Thomas <dave@...>
Sorry about this... :)
Hi,
On Friday, 5 March 2004 at 12:52:15 +0900, Yukihiro Matsumoto wrote:
Hi,
[#2588] Duck typing chapter — Dave Thomas <dave@...>
I've posted a rough first pass at a chapter about duck typing (and
[#2606] Thought about class definitions — Dave Thomas <dave@...>
If we allowed
[#2628] YAML complaint while generating RDoc — Dave Thomas <dave@...>
With the latest CVS, I get
[#2640] patch to tempfile.rb to handle ENAMETOOLONG — Joel VanderWerf <vjoel@...>
[#2644] RDoc proporsal — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Hi, rubyists.
[#2646] Problems rdoc'ing cvs... — Hugh Sasse Staff Elec Eng <hgs@...>
I have just done
On Friday, March 12, 2004, 4:15:42 AM, Dave wrote:
On Fri, 12 Mar 2004, Dave Thomas wrote:
[#2661] Pathological slowdown in 1.8 — Ryan Davis <ryand@...>
Hi all,
[#2697] lib/ruby/1.9/yaml.rb:193: [BUG] Segmentation fault — Mauricio Fern疣dez <batsman.geo@...>
Mauricio Fern疣dez wrote:
On Sun, Mar 28, 2004 at 09:42:42AM +0900, why the lucky stiff wrote:
[#2703] Proposed patch to add SSL support to net/pop.rb — Daniel Hobe <daniel@...>
This patch adds support to Net::POP for doing POP over SSL. Modeled on how
This is v2 of the patch. Cleaned up a bit and added some more docs.
v3 of the patch:
Hi,
I agree that there are a lot of arguments to #start, but I think it is the
On Tue, 30 Mar 2004 16:24:17 +0900, Daniel Hobe wrote:
On Wed, 31 Mar 2004 13:27:31 +0900, Daniel Hobe wrote:
On Tue, Mar 30, 2004 at 04:05:06PM +0900, Minero Aoki wrote:
[#2709] typos in lib/singleton.rb — Ian Macdonald <ian@...>
Hello,
[#2713] more spelling and grammar fixes — Ian Macdonald <ian@...>
Hello,
> Hello,
Hi,
Re: concerns about Proc,lambda,block
Hi,
In message "Re: concerns about Proc,lambda,block"
on 04/03/04, Dave Thomas <dave@pragprog.com> writes:
|On Mar 3, 2004, at 17:02, Yukihiro Matsumoto wrote:
|> |Matz: have you had a chance to read these pages? Are they technically
|> |accurate?
|>
|> No. Where can I read your "writeup"?
|
|http://www.pragmaticprogrammer.com/extracts/blocks.pdf
I checked. Some of your description is based on bugs I fixed already.
For example,
def meth1(&block)
block.call
end
res = meth1 do
break 99
end
This code does not raise exception any longer. There are no such
things like iterator context and closure context in Procs. There are
several basic rules:
* a Proc is a wrapper for a block attached to the method.
* break and return cause LocalJumpError when a proc is executed
(by Proc#call) after passing attached method invocation. We call
it orphan proc, but you may name it a better name.
* a Proc from "lambda" catches LocalJumpError caused by break and
return from within its body, then terminates the execution
gracefully.
* use of "Kernel#proc" is no longer encouraged; use "lambda"
instead.
In the above example, block is called within "meth1" which the block
is attached to, so that block is not orphan, no exception; whereas
def meth2(&block)
block
end
b = meth2{break 99}
res = b.call
should cause LocalJumpError, because a Proc is called after the
execution of meth2.
matz.