Re: lazy list syntax?

2005-07-29 Thread Flavio S. Glock
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?

2005-07-29 Thread Aankhen
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?

2005-07-28 Thread Yuval Kogman
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-07-28 Thread Flavio S. Glock
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?

2005-07-28 Thread Yuval Kogman
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?

2005-07-27 Thread Flavio S. Glock
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