Old Lisp, including Common Lisp at some point and elisp before emacs 24.1, is dynamically scoped, and among resources I've read, the consensus seems to be that lexical scope is just better to program in.

I'm getting the sense that dynamic scope is legitimately easier to understand. Dynamic scope can be entirely thought of in terms of symbols and their values. Lexical scopes require a new concept of "bindings" which as far as I understand currently, ruins some of the simplicity/elegance of the Lisp language.

I've been thinking about how to ask this question, "does lexical scoping break some of the elegance?" more rigorously and my best idea is to see if they are equivalent i.e. if one can implement the other.

Is it possible to implemented lexically scoped lisp as a simple extension in dynamically scoped list? And is it possible to do so without the interpreter introducing new ad-hoc symbols?

More specifically can `let`, which creates lexical scoping, be implemented in dynamically scoped lisp?