On Tue, Mar 15, 2005 at 02:47:33AM -0600, Rod Adams wrote:
: I'm trying to define zip(), but can't come up with a signature for a 
: function that returns a lazy list of lvalues, but the list itself is not 
: lazy?

If we go with my once-upon-a-time notion of using zip(@a;@b), then it
naturally comes in as [EMAIL PROTECTED],[EMAIL PROTECTED]

: As a second matter, can you declare a type for the elements of a slurpy 
: array?

Yes, and it distributes as any array return type declaration would.

: So far I have:
: 
: multi sub zip (Array [EMAIL PROTECTED]) returns List {
:   gather {
:     while any(@lists) {

any() is not guaranteed to produce left-to-right order.

:       for @lists -> @list {
:         take shift @list;
:       }
:     }
:   }
: }
: 
: But I can't tackle the lvalue problem.

Why do they need to be lvalues?  I always thought of zip as non-destructive.
Has zip historically been destructive in other languages?

: btw, I'm defining the semantics of some of several functions by simply 
: supplying a reference implementation.

That's cool.

Larry

Reply via email to