Re: nested subs

2005-06-16 Thread Piers Cawley
Luke Palmer <[EMAIL PROTECTED]> writes:

> On 6/16/05, Piers Cawley <[EMAIL PROTECTED]> wrote:
>> So, I was about to write the following test for Pugs:
>> 
>>   sub factorial (Int $n) {
>> my sub factn (Int $acc, $i) {
>>   return $acc if $i > $n;
>>   factn( $acc * $i, $i+1);
>> }
>> factn(1, 1);
>>   }
>> 
>> When I thought to check the apocalypses and exegeses and, what do you know, I
>> couldn't find any evidence that nested named functions like this were legal.
>> 
>> So, are they legal?
>
> Yep.  And they work just as if you had used an anonymous sub there--it
> closes over lexicals and everything.

I should bloody well hope so too.


Re: nested subs

2005-06-16 Thread Luke Palmer
On 6/16/05, Piers Cawley <[EMAIL PROTECTED]> wrote:
> So, I was about to write the following test for Pugs:
> 
>   sub factorial (Int $n) {
> my sub factn (Int $acc, $i) {
>   return $acc if $i > $n;
>   factn( $acc * $i, $i+1);
> }
> factn(1, 1);
>   }
> 
> When I thought to check the apocalypses and exegeses and, what do you know, I
> couldn't find any evidence that nested named functions like this were legal.
> 
> So, are they legal?

Yep.  And they work just as if you had used an anonymous sub there--it
closes over lexicals and everything.

Luke