emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Lexical bindings (was Re: table.el)


From: Kim F. Storm
Subject: Re: Lexical bindings (was Re: table.el)
Date: 04 Dec 2001 01:35:31 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1

Miles Bader <address@hidden> writes:

> Could you please send me your email again?  A disk crash erased all
> mail that arrived over the weekend.
> 
> address@hidden (Kim F. Storm) writes:
> > Summary: Don't mess with `let' at all! Please!
> 
> You're quite welcome not to use the new features...

Of course - but I really like lexical binding, and would like to use
it whenever it makes sense to do so (ie. most of the time!).

I'm just trying to raise my concerns about the way it is being added
to emacs, which IMO has a rather obscure semantics.

Consider this example (assuming lexical scope):

        (let ((find-program "find")
              (temp t))
          ....)

Here find-program and temp have lexical binding in ....  -- until you
load compile.el -- after which it has dynamic binding.

Does this code make sense, i.e. will x have lexical binding and y have
dynamic binding in ....?

        (let ((lexical-binding t))
           (let (x)
              (let ((lexical-binding nil))
                 (let (y)
                    ....))))

If so, we could add forms

        (with-lexical-binding
          ...)

        (with-dynamic-binding
          ...)

or we could add `llet' and `dlet' forms which uses explicit lexical or
dynamic binding independent of the current setting of lexical-binding.

I think all of these could be macros in subr.el !?

Anyway, I think I have expressed my concerns - I'll leave it to the
authorities to make a decision (which seems to have been made
already).




reply via email to

[Prev in Thread] Current Thread [Next in Thread]