On Fri, Sep 22, 2000 at 11:17:40AM -0400, Karl Glazebrook wrote: [Cryptocontext is:] > > f(3*@a) > > > > would typically be a list context - and suddently instead of 3*(1+$#a) > > you get C<map 3*$_, @a>. > > This is true, what I would propose is we declare 3*(1+$#a) outmoded and > always have it mean C<map 3*$_, @a> in all contexts. You are trading a frequently used shortcut @a == 1 + $#a for a rarely-used-but-beautiful/intuitive semantic. I'm not sure it is a win. Moveover, $x = 3 * @_; suddently being equivalent to $x = @_; does not look very promising... > > Why? Currently you can make them look like references to array. See > > Math::Pari for an implementation. Overloading '@{}' gives yet another > > way to do this. > > True but the user has to remember 'owe I am now using a special PDL > array which means I have to always use a reference to it rather than > treat it like a perl array'. Not good. No, you do not use "a special PDL array", you use "a vector". A subtle change in wording - and no conflict. > This is true, but inelegant. If perl @x arrays are not considered useful > why not get rid of them and always use references? Actually, this is what Perl is using internally (they are softreferences==globs, but who cares?). IlyaThread Previous | Thread Next