[Top][All Lists]

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

Re: constant `e'

From: Stuart D. Herring
Subject: Re: constant `e'
Date: Mon, 12 Feb 2007 11:17:57 -0800 (PST)
User-agent: SquirrelMail/1.4.8-2.el3.7lanl

> The `case' macro already allows `otherwise'.  That's a
> pretty compelling reason to allow it in `cond' as well.
> (Yes, I know `case' is in the `cl' library, but lots of
> people use that library --- at least its macros.)

The `case' macro allows it because t is already a special case there (case
clauses are not conditions), and so giving it an unusual name reduces the
surprise.  In `cond', each clause by definition begins with an expression
evaluated as a condition.  Any problems whatsoever in immediately and
fully understanding the function of t in such a circumstance are so
fundamental that they -should- be called out by the syntax and addressed
rather than allowed to continue by an English-like special case.  (Imagine
what would happen if someone, perhaps to shush the byte-compiler, set
`otherwise' to nil, and how much worse if the person debugging thought
that `case' treated that symbol specially!)

I am sure that not everyone agrees with my thoughts on the matter, and
that there are good arguments against them, but it is my general
contention that programmers would do well spending more time learning
their languages and tools and less time divising clever tricks in an
attempt to make such learning unnecessary for others.  The tricks
typically succeed in preventing the learning but not in transcending it.


This product is sold by volume, not by mass.  If it appears too dense or
too sparse, it is because mass-energy conversion has occurred during

reply via email to

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