Mark H Weaver <m...@netris.org> writes: > David Kastrup <d...@gnu.org> writes: > >> (define current-module >> (let ((top-level (the-environment))) >> (lambda () (eval '(the-environment) top-level)))) > > Some more notes about the above code (changing `eval' ==> `local-eval'): > > * (local-eval '(the-environment) <environment>) is a no-op: it always > returns the same environment that was passed in, so there's no point > in doing it.
I think this was based on the "the current module is part of the environment, but local-eval does not change (current-module)" mantra which I interpreted in a confused manner. The interesting thing is that it is the _lexically_ current module that is part of the environment, and inside of local-eval, this may well differ from the _actually_ current module as given by (current-module). -- David Kastrup