all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Harald Hanche-Olsen <hanche@math.ntnu.no>
To: emacs-devel@gnu.org
Subject: Re: emacs lisp syntax rfc: (cond (EXPR => (lambda (X) ...)))
Date: Wed, 05 Jan 2011 23:40:46 +0100 (CET)	[thread overview]
Message-ID: <20110105.234046.1611011828799323301.hanche@math.ntnu.no> (raw)
In-Reply-To: <jwv7hejm4g8.fsf-monnier+emacs@gnu.org>

[Stefan Monnier <monnier@IRO.UMontreal.CA> (2011-01-05 21:29:30 UTC)]

> Yet, Richard's proposal solves another problem as well:
> often the value is needed not just for the body of a cond branch, but
> also for subsequent branches

When I read this, I thought for a moment that you had lost your
marbles: For you only get into subsequent branches if the previous
conditions were all nil, which is a rather boring value to retain for
later use. But then I realized that you are now talking about a way to
bind subexpressions of a condition to make it available further in,
and that makes sense. Sort of.

However, it seems to me that we are now coming up with rather
convoluted schemes in which scoping become far from obvious,
especially to someone unfamiliar with this particular lisp. Also, I
wonder what is so special about cond, anyhow? Surely, you may wish to
make subexpressions of the condition in an if, when or unless form
available to other parts of the form as well? But we already have that:
Any lisp programmer will surely understand the role of blah in

(let (blah)
  (if (foo (setq blah (quux)))
      (bar blah)
    (baz blah)))

and it seems to me that dressing this construct up in a bunch of extra
syntax is just going to muddy the waters and confuse the users.

And by the way, the bike shed should be blue for certain.

- Harald



  reply	other threads:[~2011-01-05 22:40 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-02 21:45 emacs lisp syntax rfc: (cond (EXPR => (lambda (X) ...))) Thien-Thi Nguyen
2011-01-02 21:57 ` Fren Zeee
2011-01-02 22:00   ` Fwd: " Fren Zeee
2011-01-02 22:52 ` Harald Hanche-Olsen
2011-01-04 16:41   ` Thien-Thi Nguyen
2011-01-04 17:56     ` Harald Hanche-Olsen
2011-01-04 18:39       ` Thien-Thi Nguyen
2011-01-03  2:19 ` Stefan Monnier
2011-01-04 17:00   ` Thien-Thi Nguyen
2011-01-03 16:15 ` Richard Stallman
2011-01-04 18:12   ` Thien-Thi Nguyen
2011-01-05  1:55     ` Stephen J. Turnbull
2011-01-05  3:21       ` Thien-Thi Nguyen
2011-01-05  4:16         ` Stephen J. Turnbull
2011-01-05  5:15           ` Miles Bader
2011-01-05 21:29     ` Stefan Monnier
2011-01-05 22:40       ` Harald Hanche-Olsen [this message]
2011-01-06  0:10         ` Stefan Monnier
2011-01-06  8:24           ` Helmut Eller
2011-01-07  3:49             ` Stefan Monnier
2011-01-06 18:43         ` Richard Stallman
2011-01-05 23:36     ` Richard Stallman
2011-01-11 17:20       ` Andy Wingo
2011-01-05  5:17 ` Miles Bader
  -- strict thread matches above, loose matches on Subject: below --
2011-01-03  5:37 MON KEY
2011-01-04 17:20 ` Thien-Thi Nguyen

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=20110105.234046.1611011828799323301.hanche@math.ntnu.no \
    --to=hanche@math.ntnu.no \
    --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.