Re: New variable type: matrix
[email protected] (Christian Soeller)
| Newsgroups | perl.perl6.language.data |
|---|---|
| Organization | University of Auckland |
| Message-ID | <[email protected]> |
Doug Hunt wrote: > But I would like to speak up in support of Baris' idea. I have long > found it > confusing (both to myself and to those I must explain my code to) the > mix of > pdl multi-dimensional lists (lists of refs to lists) and PDLs, which > appear to be scalars. I was even asked once why some arrays look like > arrays and other look like scalars. > > It seems to me that scalars are quite overloaded these days. I suppose > the question is: > > Do we want to continue the perl4 tradition of syntactic markers for > different data types, or do we want to lump everything together? > > Since I'm in the 'numeric' camp, I would vote for full membership of the > compact array type in the set of perl types. I am not sure that PDL objects (piddles) are actually best represented by arrays. It is much better to think of what are now piddles as a rectangular region of nD space. The array '@' signals array context and we don't want every function that returns a piddle to signal array context. We now have functions that return lists of piddles ($fit,$fwhm) = fitgaussian $x, $y and the distinction between list context and scalar context is a good one to have with piddles as well. The other problem with arrays is: how do we deal with functions that take multiple piddle arguments if they are arrays: @result = integrate @x, @y, @bounds; Won't those all be clumped into one big input array? Does it mean we have to write @result = integrate \@x, \@y, \@bounds; which seems bad to me. Secondly I feel that the history of array indexing stands in the way of the flexibility that piddle-like things need. So we are probably better off asking for a $pdl(0:-1,:2) syntax for slicing. That leaves request for a default method and ';' as range operator. Christian