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-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-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



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

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