> -----Original Message-----
> From: [EMAIL PROTECTED]
>
> [EMAIL PROTECTED] (Austin Hastings) writes:
> > Before this gets simonized, let me add that this seems
> genuinely useful: It provides a way of constructing a loop in a
> dimension that is not really accessible, except via recursion.
>
> Oh, it *is* useful, and it's extremely nice to know that
> something like this will be able to be done as a user-defined
> extension, outside the core, or even in the standard library,
> I don't mind, once the Perl 6 core itself gets designed and
> implemented.

Granted it can be a UDF. My interest is more in the question "What else have
we omitted?"

As I recall, the discussion a while back about iterators quickly mutated
into a discussion on how to do coroutines. We never actually explored the
"what cool things are possible with iterators as a basic data object/type"
question.

Luke just illuminated one of those dark corners for us:

  "By applying iteration to iterators, you can express
  complex code structures via arrays.

  "Also, you can reclaim the FORTRAN variable namespace
  ($i..$n) for other uses."

Cool:- thinking on it, the fact that every damn coding book on the planet
has a section about nesting loops should have been a flag that P6l should be
looking at that.

What else have we missed?

=Austin

PS: The thought just occurred to me that C<outer> enables something like:

  for outer(*grep ...) -> @indices {...}

which means that the code structure gets even more dynamic.

I wonder if it's possible to code C<outer> to handle variable length, like
walking a graph. (Garbage collector, anyone?) That would be C<traverse>, or
<enumerate>. Good for walking XML, too.



Reply via email to