unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Stuart D. Herring" <herring@lanl.gov>
To: "Daniel Brockman" <daniel@brockman.se>
Cc: emacs-devel@gnu.org
Subject: Re: constant `e'
Date: Mon, 12 Feb 2007 11:17:57 -0800 (PST)	[thread overview]
Message-ID: <45328.128.165.123.18.1171307877.squirrel@webmail.lanl.gov> (raw)
In-Reply-To: <87y7n6fdod.fsf@wigwam.brockman.se>

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

Davis

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

  parent reply	other threads:[~2007-02-12 19:17 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-09  7:37 constant `e' Drew Adams
2007-02-09  9:32 ` Juanma Barranquero
2007-02-09 11:24   ` Kim F. Storm
2007-02-09 15:08   ` Stefan Monnier
2007-02-09 15:19     ` Juanma Barranquero
2007-02-09 15:34       ` Stefan Monnier
2007-02-10 17:40       ` Richard Stallman
2007-02-09 18:33     ` Jay Belanger
2007-02-09 18:51       ` Stefan Monnier
2007-02-09 14:23 ` Richard Stallman
2007-02-09 14:32   ` Leo
2007-02-09 23:11     ` Kim F. Storm
2007-02-10  0:16       ` Drew Adams
2007-02-12 18:11         ` Stuart D. Herring
2007-02-10 17:39     ` Richard Stallman
2007-02-09 14:37   ` David Kastrup
2007-02-10 17:39     ` Richard Stallman
2007-02-09 15:33   ` Drew Adams
2007-02-09 16:30     ` Eli Zaretskii
2007-02-09 16:50       ` Drew Adams
2007-02-10  9:49         ` Eli Zaretskii
2007-02-09 23:07   ` Dieter Wilhelm
2007-02-10 17:39     ` Richard Stallman
2007-02-10 18:41     ` Slawomir Nowaczyk
2007-02-10 21:12       ` Dieter Wilhelm
2007-02-10  9:29   ` Kevin Rodgers
2007-02-10 19:13     ` Stefan Monnier
2007-02-10 19:22       ` Lennart Borgman (gmail)
2007-02-10 19:38         ` Stefan Monnier
2007-02-10 20:32           ` Lennart Borgman (gmail)
2007-02-12  5:04             ` Kevin Rodgers
2007-02-12 16:06               ` Drew Adams
2007-02-10  6:27 ` Daniel Brockman
2007-02-10  8:59   ` David Kastrup
2007-02-10 11:35     ` Daniel Brockman
2007-02-10 12:01       ` David Kastrup
2007-02-10 12:42         ` Daniel Brockman
2007-02-10 12:43       ` Alan Mackenzie
2007-02-10 14:33         ` Daniel Brockman
2007-02-10 18:05           ` Alan Mackenzie
2007-02-10 18:29             ` Daniel Brockman
2007-02-12 19:03           ` Stuart D. Herring
2007-02-12 19:57             ` Daniel Brockman
2007-02-10 17:38         ` David Kastrup
2007-02-10 18:15           ` Daniel Brockman
2007-02-12 18:51           ` Stuart D. Herring
2007-02-10 19:05       ` Stefan Monnier
2007-02-10 20:48         ` Daniel Brockman
2007-02-10 21:06           ` Stefan Monnier
2007-02-11  9:42           ` David Kastrup
2007-02-11 17:53             ` Daniel Brockman
2007-02-10 21:34       ` Edward O'Connor
2007-02-12 19:17       ` Stuart D. Herring [this message]
2007-02-12 20:37         ` Daniel Brockman
2007-02-12 20:40           ` David Kastrup
2007-02-10 17:41   ` Richard Stallman
2007-02-10  9:02 ` Alan Mackenzie
2007-02-10  9:51   ` Jason Rumney
2007-02-12 18:16     ` Stuart D. Herring
2007-02-10 15:13   ` Juanma Barranquero
2007-02-10 19:12   ` Stefan Monnier
2007-02-11  0:43   ` David Hansen
2007-02-11  1:13     ` Jay Belanger
2007-02-11  1:24   ` Drew Adams
2007-02-10 18:53 ` Chong Yidong
  -- strict thread matches above, loose matches on Subject: below --
2007-02-13  2:34 djh
2007-02-13  8:23 ` Werner LEMBERG

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=45328.128.165.123.18.1171307877.squirrel@webmail.lanl.gov \
    --to=herring@lanl.gov \
    --cc=daniel@brockman.se \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).