[racket-dev] `cond' / `when' / `unless' / etc bodies

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Mon Oct 11 19:55:15 EDT 2010

I agree about changing `when', `unless', and `cond'.

I can't see changing `begin', especially now that internal-definition
contexts allow a mixture of definitions and expressions. Unlike
changing `when' and `unless', changing `begin' could change some
existing programs, such as

 (let ()
   (begin
    (define x 1)
    x)
   x)

where that `begin' is a splicing `begin', since it's in an
internal-definition context.

In some future language, we should get rid of the overloading of
`begin' for splicing and sequencing, but it would be painful to change
right now.


At Mon, 11 Oct 2010 19:15:09 -0400, Eli Barzilay wrote:
> I'd love to see an implicit `#%begin', which could have the above
> apply in more places automatically.  (It was one of the feature
> requests I asked for in the summer meeting.)

Recall that no one solved the technical problem with where to pull the
lexical context for the implicit `#%begin' or `#%body':

  http://lists.racket-lang.org/dev/archive/2010-July/003624.html



Posted on the dev mailing list.