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?
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 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 pgp1biNHaEIxu.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 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 pgpHrUYgvCrPS.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