> > > Early Lisps had only dynamic binding because people didn't know better. > But > > now we know that global mutable state is almost always undesirable and > > avoid id wherever we can. > > But my buffers are global mutable states. The whole world is a global > mutable state. Literally. How can we model them without such things in > our languages? Why would we want to? > I think this is the wrong way to approach this. What counts here are the benefits: by avoiding global mutable state we make code that is easier to reason about, easier to test, etc. There is simply no real argument for using global mutable state when we can avoid it, except for somewhat weak arguments like "it's convenient" or "it'd require too much refactoring". Philippe