> > BTW, I'd like to see a more lightweight currying mechanism too. The
> > challenge is to find a 'perlish' but not heavyweight approach...
>
> Ah, good.  I assume that having established the challenge, you'll be
> rising to it? :-)
>
Yes of course. But I want to first of all see the following RFCs from Damian
he's promised:
----
> * Built-ins: min() and max() functions and acceptors
>
> * Built-ins: reduce() function
>
> * Data structures: Semi-finite (lazy) lists
>
> * Subroutines: higher order functions
>
> * Subroutines: lazy evaluation of argument lists
>
> * Superpositions: vector operations via superpositions
----
Damian is likely to write these in a way that is nicely integrated together,
based on past experience. What I'd then like to do is to see how these fit
together to fill in the stuff I mentioned earlier today:
<quote>
- Matrix ops
- Support for lazy evaluation
- Compile time expression unrolling (e.g. so that $a = sum(@b*@c+@d) does
just one loop and no memory copy, as would occur with expression templates
in C++)
- Ability to specify infinite lists (e.g. like in Haskell)
- Generic programming (iterators, algorithms, etc, eg. like in the STL)
</quote>

I think the way I'd like to do this is to try and implement a couple of
interesting bits of code that I've found are good tests of numerical
programming environments. Stuff that just looks beautiful in Mathematica
(which supports functional, rule-based, and procedural programming), but is
full of loops and control structures in most languages. That way any bits
that are missing will be pretty obvious (at least bits that matter to me!)

I've tried to get input from PDL porters by cross-posting a couple of times,
but haven't got much of a bite yet. I'm nervous about finding that we either
reinvent the wheel, or break useful stuff that they've done... Are there any
PDL gurus here who are interested in getting involved in some of these
perl6-language issues?


Reply via email to