On Mon, Feb 21, 2005 at 11:32:16AM -0800, Larry Wall wrote:
> On Mon, Feb 21, 2005 at 02:07:10PM +0000, osfameron wrote:
> : >    In Perl 6, C<< => >> is a fully-fledged anonymous object constructor --
> : >    like C<[...]> and C<{...}>. The objects it constructs are called 
> : >"pairs"
> : >    and they consist of a key (the left operand of the C<< => >>), and a 
> : >value
> : >    (the right  operand). 
> : 
> : Can pairs also be used to create linked lists?
> : 
> :  my $x = 1=>2=>3=>4
> : 
> :  $x.key   = 1
> :  $x.value = 2=>3=>4
> 
> Yep, certainly--as any Lisp programmer knows, pairs can be used to create
> linked lists.  But we were hoping nobody would notice that.  :-)
> 
> In any event, we haven't optimized the pair notation to be the standard
> list notation.  (But then, almost nobody actually uses dot notation
> much in Lisp either...)
> 
> On the gripping hand, lists in Perl have historically been optimized
> to be in contiguous memory rather than in linked lists, so standard
> list notation in Perl is not based on pair semantics as it is in Lisp.
> It would be possible to come up with a linked list notation for Perl 6
> and install it via some kind of grammatical munge.  Bare S-expressions
> won't work in standard Perl, of course, unless you make "(foo"
> parse like some kind of reserved word for a known set of "foo".
> I'm sure if you did that someone would consider it perverse.
>

Just to clarify then, are the following two equivolent?
my $x = 1 => 2 => 3 => 4;
my $x = 1 => (2 => (3 => 4));

Steve Peters
[EMAIL PROTECTED]

Reply via email to