From: Drew Adams <drew.adams@oracle.com>
To: Barry Margolin <barmar@alum.mit.edu>, help-gnu-emacs@gnu.org
Subject: RE: To `boundp' or not to `boundp'?
Date: Tue, 1 Sep 2015 13:42:25 -0700 (PDT) [thread overview]
Message-ID: <2e80cc7f-0118-4a58-a5a8-62ad8262d905@default> (raw)
In-Reply-To: <<barmar-B5D67F.16201001092015@88-209-239-213.giganet.hu>>
> > > > I often see code like this
> > > > (when (and (boundp 'xxx-mode) xxx-mode) ...)
> > >
> > > The "proper" way to do that is to use bound-and-true-p.
> >
> > That certainly is *not* proper for the more general case
> > (and (boundp 'xxx) xxx), where the value of `xxx' is
> > not necessarily Boolean or is not used only as a Boolean.
> >
> > Well, it works the same, but the _name misleads_ terribly
> > in this case, even if the doc does let you know that the
> > variable value (not t or nil) is returned, when bound.
>
> The name isn't misleading if you use it in a boolean context,
> like the WHEN call in the OP.
Correct. It is not misleading in that case. Which is why
I qualified the statement with "where the value of `xxx' is
_not_ necessarily Boolean or is _not_ used only as a Boolean."
It does not mislead in all cases, no. But it does in some.
It is misleading in general because what it suggests is not
what is meant in some (common) cases. Not a great name.
FWIW, if someone proposed `member-p' instead of `member'
I would have the same remark. The former emphasizes the
Boolean/predicate nature; the latter does not. A fortiori,
if someone were to propose `member-and-true-p' - no thanks.
It's not a big deal, certainly. But neither is it needed.
(and (boundp 'VAR) VAR) is succinct enough and clear enough,
IMHO, and it has the advantage of _never_ misleading.
next prev parent reply other threads:[~2015-09-01 20:42 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-01 15:50 To `boundp' or not to `boundp'? Alexander Shukaev
2015-09-01 15:51 ` Dmitry Gutov
2015-09-01 15:53 ` Alexander Shukaev
2015-09-01 16:42 ` Drew Adams
2015-09-01 17:13 ` Michael Heerdegen
2015-09-01 18:00 ` Drew Adams
[not found] ` <mailman.331.1441125765.19560.help-gnu-emacs@gnu.org>
2015-09-01 20:20 ` Barry Margolin
2015-09-01 23:37 ` member returns list (was: Re: To `boundp' or not to `boundp'?) Emanuel Berg
2015-09-02 0:10 ` Drew Adams
2015-09-02 0:27 ` Emanuel Berg
2015-09-02 0:38 ` Drew Adams
2015-09-02 1:17 ` Emanuel Berg
2015-09-02 6:21 ` Drew Adams
2015-09-02 21:20 ` Emanuel Berg
[not found] ` <mailman.370.1441156160.19560.help-gnu-emacs@gnu.org>
2015-09-03 5:17 ` member returns list Pascal J. Bourguignon
2015-09-04 0:26 ` Emanuel Berg
2015-09-02 16:45 ` Michael Heerdegen
2015-09-02 21:47 ` Emanuel Berg
2015-09-02 22:09 ` Michael Heerdegen
2015-09-02 22:11 ` Drew Adams
2015-09-02 22:13 ` Marcin Borkowski
2015-09-04 1:03 ` Emanuel Berg
2015-09-04 6:50 ` Marcin Borkowski
2015-09-05 17:35 ` Emanuel Berg
2015-09-05 17:55 ` Random832
2015-09-05 18:09 ` Emanuel Berg
2015-09-05 21:04 ` Random832
2015-09-06 2:57 ` Emanuel Berg
[not found] ` <mailman.552.1441475739.19560.help-gnu-emacs@gnu.org>
2015-09-05 23:39 ` Pascal J. Bourguignon
2015-09-06 2:46 ` Emanuel Berg
2015-09-09 1:48 ` Robert Thorpe
2015-09-09 2:44 ` Pascal J. Bourguignon
2015-09-09 3:19 ` John Mastro
2015-09-10 0:25 ` Emanuel Berg
[not found] ` <mailman.557.1441507097.19560.help-gnu-emacs@gnu.org>
2015-09-06 21:20 ` Pascal J. Bourguignon
2015-09-06 23:33 ` Emanuel Berg
[not found] ` <mailman.598.1441581917.19560.help-gnu-emacs@gnu.org>
2015-09-06 23:47 ` Pascal J. Bourguignon
2015-09-07 1:29 ` Pascal J. Bourguignon
2015-09-07 2:25 ` Emanuel Berg
2015-09-09 1:44 ` Robert Thorpe
2015-09-10 0:23 ` Emanuel Berg
[not found] ` <mailman.793.1441844665.19560.help-gnu-emacs@gnu.org>
2015-09-10 2:01 ` Pascal J. Bourguignon
2015-09-10 2:32 ` Emanuel Berg
[not found] ` <ECCA0E56-A051-4D38-8CBB-6CE9208BB047@openmailbox.org>
2015-09-11 1:32 ` Emanuel Berg
2015-09-11 1:46 ` Emanuel Berg
[not found] ` <mailman.797.1441852386.19560.help-gnu-emacs@gnu.org>
2015-09-10 4:21 ` Pascal J. Bourguignon
2015-09-10 18:09 ` Alex Kost
2015-09-11 1:01 ` Random832
2015-09-11 1:28 ` Emanuel Berg
2015-09-11 2:01 ` Emanuel Berg
2015-09-11 2:52 ` Random832
[not found] ` <mailman.890.1441936900.19560.help-gnu-emacs@gnu.org>
2015-09-11 2:27 ` Pascal J. Bourguignon
2015-09-12 0:10 ` Emanuel Berg
2015-09-11 2:37 ` Ian Zimmerman
2015-09-11 1:03 ` Emanuel Berg
2015-09-11 0:57 ` Emanuel Berg
2015-09-11 5:42 ` tomas
2015-09-12 0:18 ` Emanuel Berg
2015-09-13 8:12 ` tomas
[not found] ` <mailman.897.1441950163.19560.help-gnu-emacs@gnu.org>
2015-09-11 23:29 ` Pascal J. Bourguignon
2015-09-12 0:20 ` Emanuel Berg
[not found] ` <mailman.966.1442016910.19560.help-gnu-emacs@gnu.org>
2015-09-12 2:01 ` Pascal J. Bourguignon
2015-09-12 3:26 ` Emanuel Berg
2015-09-13 7:50 ` tomas
2015-09-12 2:03 ` Pascal J. Bourguignon
2015-09-12 2:45 ` Stefan Monnier
2015-09-12 3:12 ` Emanuel Berg
2015-09-12 3:31 ` Emanuel Berg
[not found] ` <mailman.972.1442025961.19560.help-gnu-emacs@gnu.org>
2015-09-12 6:16 ` Pascal J. Bourguignon
2015-09-12 23:38 ` Emanuel Berg
2015-09-13 8:03 ` tomas
2015-09-14 1:31 ` Emanuel Berg
[not found] ` <mailman.1016.1442100597.19560.help-gnu-emacs@gnu.org>
2015-09-13 0:09 ` Pascal J. Bourguignon
2015-09-13 0:24 ` John Mastro
[not found] ` <mailman.1019.1442103883.19560.help-gnu-emacs@gnu.org>
2015-09-13 4:29 ` Pascal J. Bourguignon
2015-09-16 0:01 ` computer history (was: Re: member returns list) Emanuel Berg
[not found] ` <mailman.978.1442028310.19560.help-gnu-emacs@gnu.org>
2015-09-12 6:18 ` member returns list Pascal J. Bourguignon
2015-09-12 23:56 ` Emanuel Berg
[not found] ` <mailman.1018.1442101697.19560.help-gnu-emacs@gnu.org>
2015-09-13 0:20 ` Pascal J. Bourguignon
2015-09-14 1:24 ` Emanuel Berg
2015-09-12 2:04 ` Pascal J. Bourguignon
2015-09-12 3:15 ` Emanuel Berg
2015-09-12 7:40 ` Eli Zaretskii
[not found] ` <mailman.884.1441933051.19560.help-gnu-emacs@gnu.org>
2015-09-11 2:26 ` Pascal J. Bourguignon
2015-09-12 0:16 ` Emanuel Berg
2015-09-07 2:38 ` Drew Adams
2015-09-07 2:37 ` Drew Adams
[not found] ` <mailman.502.1441349470.19560.help-gnu-emacs@gnu.org>
2015-09-04 17:26 ` Barry Margolin
2015-09-05 17:40 ` Emanuel Berg
2015-09-02 0:40 ` member (was: Re: To `boundp' or not to `boundp'?) Emanuel Berg
[not found] ` <mailman.363.1441150201.19560.help-gnu-emacs@gnu.org>
2015-09-02 16:25 ` member returns list " Barry Margolin
2015-09-02 21:35 ` Emanuel Berg
[not found] ` <mailman.426.1441229773.19560.help-gnu-emacs@gnu.org>
2015-09-02 22:56 ` Barry Margolin
2015-09-02 23:23 ` Emanuel Berg
[not found] ` <mailman.368.1441153951.19560.help-gnu-emacs@gnu.org>
2015-09-03 5:19 ` member Pascal J. Bourguignon
2015-09-04 0:24 ` member Emanuel Berg
[not found] ` <<barmar-B5D67F.16201001092015@88-209-239-213.giganet.hu>
2015-09-01 20:42 ` Drew Adams [this message]
2015-09-02 2:12 ` To `boundp' or not to `boundp'? Stefan Monnier
2015-09-02 15:26 ` Alexander Shukaev
2015-09-02 16:51 ` Michael Heerdegen
[not found] ` <mailman.410.1441212753.19560.help-gnu-emacs@gnu.org>
2015-09-02 20:00 ` Barry Margolin
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=2e80cc7f-0118-4a58-a5a8-62ad8262d905@default \
--to=drew.adams@oracle.com \
--cc=barmar@alum.mit.edu \
--cc=help-gnu-emacs@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.
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).