return when desugaring to closures

Mark S. Miller erights at google.com
Sat Oct 11 14:24:57 PDT 2008


On Sat, Oct 11, 2008 at 1:36 PM, Peter Michaux <petermichaux at gmail.com> wrote:
> Simplifying
>
> (lambda (x = 3, y = x) (x+y))()
>
> to just
>
> let (x = 3, y = x) (x+y)
>
> makes it much more clear when reading code what the intention of the
> programmer was.

If the need for this case were common, that would be something. But
how often do cases come up for which the letrec-like let declaration
is not adequate? In hand written source, I think it's very rare. In
machine generated code, including explanatory expansions, it's quite
common. But these can use the lambda form without confusion.

-- 
    Cheers,
    --MarkM


More information about the Es-discuss mailing list