emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Documentation for car and cdr


From: Bill Atkins
Subject: Re: Documentation for car and cdr
Date: Wed, 25 Jan 2006 18:19:29 -0500

On 1/25/06, Alan Mackenzie <address@hidden> wrote:

> >Why do we need to "speak loosely"?
>
> So as to be immediately understandable.
>
> >Including a link to a description of cons cells is completely adequate.
>
> Yes, but only in addition to an intuitively meaningful description, not
> instead of it.  Because that would force the poor hacker to go and look
> somewhere else.  Having to go and look somewhere else is always a pain in
> the posterior, particularly when a one-liner explanation is all that is
> sought.

If you're writing Elisp code, and you need to go to the documentation
for CAR and CDR, you're probably better off reading an introduction to
Lisp (or following a link to an explanation of cons cells).

> >Your definitions are misleading in any case.  CAR and CDR do not
> >necessarily deal with lists;
>
> It is merely that the parameter to cdr is called LIST.  I haven't
> otherwise implied that it must be a list.  For example "(a . b)" without
> it's first element is "b", or something like it.
>
> >as others have pointed out, a cons is a distinct data structure that is
> >used to compose lists only by convention.  These are not "abstract
> >concepts," they're simply how Lisp works.
>
> We're reduced to silly semantic arguments about "abstract" now.  Others
> have asserted that "cdr returns the cdr" is a coherent description of
> cdr.  They are thus implying that "cdr" is semantically different from
> "cdr", otherwise that description would be circular and vacuous.  I
> disagree with them, and used the term "abstract concept" only to try to
> highlight what to me is an absurdity.

A car is the first element of a cons; a cdr is the second.  That's
pretty concrete.

> >--
> >Bill Atkins
>
> --
> Alan Mackenzie (Munich, Germany)
>
>
>


--
Bill Atkins




reply via email to

[Prev in Thread] Current Thread [Next in Thread]