[racket-dev] `cond' / `when' / `unless' / etc bodies
40 minutes ago, Matthew Flatt wrote:
> 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.
Yes, it's the (imaginary) implicit begin that would change, so the
above wouldn't change.
> 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.
(+1)
> 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
I remember being confused with how that problem would look like, but I
don't think that I've seen an example where this would be problematic.
(I think that we talked about it, but I can't remember any concrete
details...)
In any case, I did remember that it was problematic...
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!