On Fri, May 1, 2015 at 2:10 PM, Jonathan S. Shapiro <s...@eros-os.org> wrote:
> The habit in functional languages has been to use something like "let" as
> the top-level binding form. This grants economy of mechanism, but it leads
> to a design inconsistency.
>
> On the one hand, the bindings in a LET should go out of scope when the let
> does. If so, it should follow that in the following code:
>
> let x = 5
> in
>    ...
>
> let x = 3
> in
>    ...
>
> x is not rebound because it has gone out of scope. Most functional languages
> nonetheless diagnose this as a rebinding.
>
> Does anybody else find this distasteful and confusing?

I don't understand. Is that toplevel code? The toplevels I know don't
use "in" for the toplevel version of "let". By "rebinding" you mean
shadowing?
_______________________________________________
bitc-dev mailing list
bitc-dev@coyotos.org
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to