On Thu, Aug 17, 2006 at 11:45:06PM -0400, Joe Gottman wrote:
> > -----Original Message-----
> > From: Luke Palmer [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, August 17, 2006 8:44 PM
> > To: Perl6 Language List
> > 
> > Wasn't NEXT supposed to do something tricky, such as being mutually
> > exclusive with LAST?  I remember a debate some time ago where some
> > complained "but that would be hard to implement", and the solution
> > being mostly correct but failing in this case.
> > 
> > I seem to recall NEXT being created in order to do things like this:
> > 
> >     for @objs {
> >         .print;
> >         NEXT { print ", " }
> >         LAST { print "\n" }
> >     }
> > 
> > We also might consider using perl6's hypothetical features to
> > implement NEXT correctly in all cases (except for those cases where
> > the loop update condition cannot be hypotheticalized).
> 
> 
> 
> Is this even possible?  This would require Perl to know which iteration is
> going to be the last one.  In many cases there is no way to know this:
> 
>    repeat {
>       $num = rand;
>       print $num;
>       NEXT {print ',';}
>       LAST {print "\n";}
> } while $num < 0.9;
> 
> If rand is a true random-number generator it would take a time machine to
> determine whether to call NEXT or LAST.
> (Sorry for the double post.)

Depends on when it fires I guess. Your example might be equivalent to
this perl5ish:

    while (1) {
        $num = rand;
        print $num;
        last if $num < 0.9;
        print ",";              # NEXT
    }
    print "\n";                 # LAST

-Scott
-- 
Jonathan Scott Duff
[EMAIL PROTECTED]

Reply via email to