From: Daniel Brockman <daniel@brockman.se>
To: emacs-devel@gnu.org
Subject: Re: constant `e'
Date: Sat, 10 Feb 2007 12:35:30 +0100 [thread overview]
Message-ID: <87y7n6fdod.fsf@wigwam.brockman.se> (raw)
In-Reply-To: 854ppu8k1l.fsf@lola.goethe.zz
David Kastrup <dak@gnu.org> writes:
> Daniel Brockman <daniel@brockman.se> writes:
>
>> Seriously, though, I'd really like to see an `otherwise'
>> constant (defined to `t', of course). That would make
>> catch-all clauses of `cond' look much better.
>
> Disagree, that's an idiom.
Of course it's an idiom. That doesn't mean it looks good.
I, as a speaker of Emacs Lisp, would prefer not to use this
idiom if `otherwise' became an accepted alternative.
Why? Because I simply think this looks ugly:
(cond ((not (null n))
(bongo-mark-line-forward (prefix-numeric-value n)))
((bongo-region-active-p)
(bongo-mark-region (region-beginning) (region-end)))
(t
(bongo-mark-line-forward)))
It looks as if the last arm is about to break and fall off.
I think this looks better:
(cond ((not (null n))
(bongo-mark-line-forward (prefix-numeric-value n)))
((bongo-region-active-p)
(bongo-mark-region (region-beginning) (region-end)))
(otherwise
(bongo-mark-line-forward)))
Incidentally, I also think `(not (null n))' looks better
than `n' --- as do, I believe, most Emacs Lisp programmers.
Take a look at this code:
(cond (n
(bongo-mark-line-forward (prefix-numeric-value n)))
((bongo-region-active-p)
(bongo-mark-region (region-beginning) (region-end)))
(t
(bongo-mark-line-forward)))
It's ugly, isn't it? It's not just that `(not (null n))' is
semantically clearer than a lone `n'; it's also more beautiful.
> Anyway, you can do
>
> (cond ((eq x 'yellow) "yellow")
> ((eq x 'green) "green")
> ("other"))
>
> and avoid the t altogether. Not that it is prettier to
> my eyes.
Interesting. I think I'll try that for a while.
(cond ((not (null n))
(bongo-mark-line-forward (prefix-numeric-value n)))
((bongo-region-active-p)
(bongo-mark-region (region-beginning) (region-end)))
((bongo-mark-line-forward)))
It looks a little weird, but maybe I'll get used to it.
It certainly is prettier to my eyes. Thanks.
>> Please?
>
> There is no point in Elisp diverging from Lisp without
> more compelling reasons.
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.)
--
Daniel Brockman <daniel@brockman.se>
next prev parent reply other threads:[~2007-02-10 11:35 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 [this message]
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
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=87y7n6fdod.fsf@wigwam.brockman.se \
--to=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 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.