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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.