On Thu, Mar 22, 2012 at 11:14:54PM +0100, Daniel Carrera wrote: > Hey, > > I have a few slightly related questions: > > 1. The semicolon operator would allow Perl 6 to support N-dimensional > arrays... How would one iterate over that type of array? > > my num @matrix[ 10 ; 10 ; 10 ]; > > I ask because a natural extension is to add arithmetic operators and > you have the beginnings of a Matlab-like array language.
I've started trying to implement S09 things this month, and this is
actually one of the big questions that came up for me. I raised it
on IRC earlier (which is much more active than p6l, fwiw) and I don't
think we actually arrived at a definite answer.
There are three obvious choices for what 'for @matrix { }' means:
* Iterate over slices that fix the leftmost index
* Iterate over all elements in lexicographic order
* Die
I'm currently thinking of the first, because it allows
(map {$_}, @matrix)[0] to mean the same thing as @matrix[0]. But it's
likely there are other nice considerations.
> 2. Do you think Rakudo is likely to get support for N-dimensional
> arrays in... say... the next year or so?
No comment. If pmichaud stays alive and well, anything is possible.
> 3. Does anyone here know much about Niecza? Can you compare it with
> Rakudo? I am already familiar with the feature support page
> (http://perl6.org/compilers/features) so I am leaving the question
> intentionally vague. I'd be interested in anything that you think is
> interesting (e.g. speed, development style, progress, whatever).
"For some reason it's much less suprising; I almost never have to guess
what niecza will do with a given piece of code."
Seriously, relative to Rakudo:
Performance: Uses less memory, compiles comparably fast, used to
be much faster at runtime but the gap has narrowed considerably.
Platform: Rakudo/Parrot requires a system with a C89 compiler and a
sufficiently 386-like processor (in particular, it wants a flat address
space and equal size code and data pointers). Niecza requires a CLR
implementation (developed on Mono, tested on Microsoft .NET).
Rakudo can use C libraries, Niecza can use CLR libraries.
Features: Idiosyncratic variance. Niecza is still generally ahead on
regex support and a few other odds and ends. Rakudo currently has the
edge on macros, list behavior, native types, the MOP, and working
libraries.
> Cheers,
> Daniel.
-Stefan
signature.asc
Description: Digital signature
