[bitc-dev] CLEANUP: Two-legged "if"
kpreid at mac.com
Thu Jul 17 09:00:01 CDT 2008
On Jul 17, 2008, at 8:54, Jonathan S. Shapiro wrote:
> If anybody has strong objections, we need to hear them!
This is not an objection, but a "have you thought about this?".
> As we have been writing code, I find increasingly that I want to be
> to use a two-legged if. In functional programs this form has fairly
> limited value, but in stateful programs it is a very common idiom. ...
> a derived form returning unit:
> (if e-test e-then) =>
> (if e-test (begin e-then ()) ())
Have you considered instead introducing a separate operator with an
implicit begin, allowing multiple forms in the body, since this is
often useful in such imperative code?
Common Lisp calls this WHEN.
(when e-test e-then*) =>
(if e-test (begin e-then* ()) ())
(using * to denote repetition; I don't know your preferred notation)
Kevin Reid <http://homepage.mac.com/kpreid/>
More information about the bitc-dev