On Fri, 5 Oct 2001, Mark J. Reed wrote:

> Well, "car" and "cdr" don't really fit; the key and value of a pair can be any
> type of object, unlike the Lisp case where the cdr is always a list
> (while the car can be either a list or an atom).

Incorrect - "cdr" can be anything at all, just like in Perl 6.

> But you can always define your own accessor methods with whatever
> names you like. :)

I can?  How do I do that?

> What's an associative list, how does it differ from an associative array,
> and how is it wimpy?

An associative list is a list of pairs that's used like a hash but
requires a linear search for reads and writes.  In Perl 5 it would look
like:

  ( [ foo => 1 ], [ bar => 2 ] )

Assoc lists are commonly used in LISPish languages that lack convenient
hashes.  Emacs, for example, uses assoc lists extensively.

> Perl hashes *are* associative arrays;

Right.  The difference between "array" and "list" when you start talking
about LISPy pairs is significant.

> we only started calling them "hashes" because it's shorter.

Well, that and it's less confusing.  We have a hard enough time keeping
our arrays and lists separated without pulling in another data-structure.

-sam


Reply via email to