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