From: Alan Mackenzie <acm@muc.de>
To: Drew Adams <drew.adams@Oracle.com>
Cc: Emacs-Devel <emacs-devel@gnu.org>
Subject: Re: constant `e'
Date: 10 Feb 2007 10:02:38 +0100 [thread overview]
Message-ID: <20070210101700.GA885@muc.de> (raw)
In-Reply-To: <BDEIJAFNGDOAGCJIPKPBMEIOCCAA.drew.adams@oracle.com>
Hi, Drew!
On Thu, Feb 08, 2007 at 11:37:36PM -0800, Drew Adams wrote:
> A minor whine - ignore if you don't agree.
No such luck!
> Single-character global variables are generally not such a great idea.
> In particular, they can easily occur as typographical errors and not be
> detected for a while.
Has this happened to you?
> The variable `e', defined in `float-sup.el', has been around for a long
> time, but I wonder if it wouldn't be better to give it a different name
> in Emacs, because of the possibility of `e' occurring as a typo.
e has been around for several hundred years. It is known by that name
universally in European language cultures. Anybody who understands its
concept instantly recognises its one-letter name, just as any hacker
recognises the name C. Has e ever been known to mathematicians by any
other name? So no, in my humble opinion, it would not be a good idea to
give it a new name.
> `t' is similar, of course, but `t' as a typo is less surprising for
> anyone at all used to Lisp. `e' as a numerical constant is not used in
> most Emacs-Lisp code, so it is more likely that someone might be
> surprised by the effect of an `e' typo (once discovered).
If e were to be renamed, how would anybody find out it exists? Who would
remember the new name?
> The position of `e' on many keyboards also makes it easy to hit when
> you mean to hit a numeral key such as `3', and, unlike `t', the type of
> `e' is numeric, so the value mismatch won't always lead to a type
> mismatch that might make the error more apparent.
Come on, Drew - post the error you made or came across, please!
> There are many other one-letter physical and mathematical constants.
> Fortunately, their names are not used as the names of Emacs constants
> and variables. `e' seems to be the exception. Even a two-letter name,
> such as `pi', is much, much less error prone than a one-letter name.
Despite being a maths graduate, I can't think of any other such constants
with anything like the universality of e and pi.
[ .... ]
> The best joke is not that self-referencing comment, but the fun someone
> would have trying to find all occurrences of variable `e' in the
> existing code, ....
Something like
"^\([^e;\]\|\\.\|[a-zA-Z_-]e\|e[a-zA-Z_-]\)*e\([^a-zA-Z_-]\|$\)"
(fully untested), would find them easily enough.
> .... to rename them (and debugging missed or inappropriate renamings).
> Undefining it and seeing what happens would be one approach...
> Obviously not something to attempt before the release, in any case. ;-)
I don't think there would be that many to find.
--
Alan Mackenzie (Ittersbach, Germany)
next prev parent reply other threads:[~2007-02-10 9:02 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
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 [this message]
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070210101700.GA885@muc.de \
--to=acm@muc.de \
--cc=drew.adams@Oracle.com \
--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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.