RE: The Block Returns

2003-10-03 Thread Austin Hastings
-Original Message- From: Luke Palmer [mailto:[EMAIL PROTECTED] Sent: Thursday, October 02, 2003 10:23 PM To: Jeff Clites Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: Re: The Block Returns Jeff Clites writes: Speaking to the practical side, I have written code that has

Re: The Block Returns

2003-10-03 Thread Luke Palmer
Austin Hastings writes: -Original Message- From: Luke Palmer [mailto:[EMAIL PROTECTED] But this is already supported, in its most powerful form: wrap block: { call; other_stuff() } Hmm, no. That does a call, which presumes a return, which burns up who-knows-how-many

Re: The Block Returns

2003-10-03 Thread Simon Cozens
[EMAIL PROTECTED] (Austin Hastings) writes: Frankly, I think I'd rather see: Some nits: macro atexit($code) is parsed(/{ Perl6.line* }/) { Probably just macro atexit($code) is parsed(/Perl6.block/) { $block .= $code; $block _= $code; Dunno what .= would mean now . is method

Re: The Block Returns

2003-10-03 Thread Luke Palmer
Simon Cozens writes: [EMAIL PROTECTED] (Austin Hastings) writes: Frankly, I think I'd rather see: Some nits: macro atexit($code) is parsed(/{ Perl6.line* }/) { Probably just macro atexit($code) is parsed(/Perl6.block/) { $block .= $code; $block _= $code;

Re: The Block Returns

2003-10-03 Thread Dan Sugalski
On Fri, 3 Oct 2003, Simon Cozens wrote: [EMAIL PROTECTED] (Austin Hastings) writes: eval($block) if defined $block; I prefer $block.compile.run to eval() They're not quite equivalent -- I think eval's still wrapping a try/catch around the call.

Re: The Block Returns

2003-10-03 Thread Adam D. Lopresto
On Fri, 3 Oct 2003, Simon Cozens wrote: Dunno what .= would mean now . is method call. I'm sure someone will make it mean something. :) I've been saying for some time now that .= should mean exactly what one would expect it to mean, method call and assign the result, for code like $str .= lc;

Re: The Block Returns

2003-10-03 Thread Mark A. Biggar
Austin Hastings wrote: -Original Message- From: Luke Palmer [mailto:[EMAIL PROTECTED] Sent: Thursday, October 02, 2003 10:23 PM To: Jeff Clites Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: Re: The Block Returns Jeff Clites writes: Speaking to the practical side, I have written code

Re: The Block Returns

2003-10-03 Thread Dan Sugalski
On Thu, 2 Oct 2003, Mark A. Biggar wrote: Austin Hastings wrote: But that imposes Ceval()/C pretty frequently. Better to provide some lower-level hackish way to agglutinate Blocks. Isn't this one of the prime examples of why CPS is being use, it allows for Tail Recursion Optimization.

Re: The Block Returns

2003-10-03 Thread Piers Cawley
Dan Sugalski [EMAIL PROTECTED] writes: On Thu, 2 Oct 2003, Mark A. Biggar wrote: Austin Hastings wrote: But that imposes Ceval()/C pretty frequently. Better to provide some lower-level hackish way to agglutinate Blocks. Isn't this one of the prime examples of why CPS is being use, it

Re: The Block Returns

2003-10-03 Thread Dan Sugalski
At 11:55 PM +0100 10/3/03, Piers Cawley wrote: Dan Sugalski [EMAIL PROTECTED] writes: On Thu, 2 Oct 2003, Mark A. Biggar wrote: Austin Hastings wrote: But that imposes Ceval()/C pretty frequently. Better to provide some lower-level hackish way to agglutinate Blocks. Isn't this one of the

Re: The Block Returns

2003-10-03 Thread Piers Cawley
Dan Sugalski [EMAIL PROTECTED] writes: At 11:55 PM +0100 10/3/03, Piers Cawley wrote: Dan Sugalski [EMAIL PROTECTED] writes: On Thu, 2 Oct 2003, Mark A. Biggar wrote: Austin Hastings wrote: But that imposes Ceval()/C pretty frequently. Better to provide some lower-level hackish way