Re: lazy list syntax?
Just wondering - would 'reverse =$foo' call '$foo.previous()' ? - Flavio 2005/7/29, Aankhen <[EMAIL PROTECTED]>: > On 7/29/05, Flavio S. Glock <[EMAIL PROTECTED]> wrote: > > Is "for =" only for filehandles? I tried: > > No, it's for anything that supports iteration... `=$foo` == > `$foo.next()`, if I recall correctly. It's probably not yet > implemented. > > Aankhen
Re: lazy list syntax?
On 7/29/05, Flavio S. Glock <[EMAIL PROTECTED]> wrote: > Is "for =" only for filehandles? I tried: No, it's for anything that supports iteration... `=$foo` == `$foo.next()`, if I recall correctly. It's probably not yet implemented. Aankhen
Re: lazy list syntax?
On Thu, Jul 28, 2005 at 19:58:16 -0300, Flavio S. Glock wrote: > 2005/7/28, Yuval Kogman <[EMAIL PROTECTED]>: > > > > I think unary = is what you want: > > > > my @a = $span.lazy; > > > > for [EMAIL PROTECTED] -> $item { > > ... > > } > > > > Ofcourse, my @a = $span.lazy will have to be fixed, but what you > > tried should be working. > > Is "for =" only for filehandles? I tried: > > pugs> say for =1 > *** cannot cast from VInt 1 to Handle (VHandle) Hmmm... That's odd. I may be out of date, but I thought that unary = is the complement of unary **. -- () Yuval Kogman <[EMAIL PROTECTED]> 0xEBD27418 perl hacker & /\ kung foo master: *shu*rik*en*sh*u*rik*en*s*hur*i*ke*n*: neeyah pgpupSNmZSHix.pgp Description: PGP signature
Re: lazy list syntax?
2005/7/28, Yuval Kogman <[EMAIL PROTECTED]>: > > I think unary = is what you want: > > my @a = $span.lazy; > > for [EMAIL PROTECTED] -> $item { > ... > } > > Ofcourse, my @a = $span.lazy will have to be fixed, but what you > tried should be working. Is "for =" only for filehandles? I tried: pugs> say for =1 *** cannot cast from VInt 1 to Handle (VHandle) - Flavio S. Glock
Re: lazy list syntax?
On Wed, Jul 27, 2005 at 20:17:41 -0300, Flavio S. Glock wrote: > I have an object representing the sequence "1..Inf". > I tried creating a Coroutine, and then assigning the Coroutine to an > Array, but it only yielded "1": > > my @a = $span.lazy; # "1" > > The coroutine worked fine in a "while" loop, but it didn't work in a "for" > loop. I think unary = is what you want: my @a = $span.lazy; for [EMAIL PROTECTED] -> $item { ... } Ofcourse, my @a = $span.lazy will have to be fixed, but what you tried should be working. -- () Yuval Kogman <[EMAIL PROTECTED]> 0xEBD27418 perl hacker & /\ kung foo master: *shu*rik*en*sh*u*rik*en*s*hur*i*ke*n*: neeyah pgpK6nQnSPM5Y.pgp Description: PGP signature
lazy list syntax?
How can I create a lazy list from an object? I have an object representing the sequence "1..Inf". I tried creating a Coroutine, and then assigning the Coroutine to an Array, but it only yielded "1": my @a = $span.lazy; # "1" The coroutine worked fine in a "while" loop, but it didn't work in a "for" loop. This is the implementation (in "ext/Span"): coro lazy ($self: ) { my $iter = $self.iterator(); loop { my $n = $iter.next; return unless defined $n; yield $n; } } I understand that this is not fully specified yet, but I'd like to start writing some tests for it. Thanks! - Flavio S. Glock