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. Larry