Xah Lee wrote: > i cannot fathom what could possibly be difficult of > introducing or implementing a namespace mechanism into a language.
Joshua Cranmer wrote: >> Namespaces go to the very core of a language, name resolution. >> Retroactively adding such a feature is extremely difficult because there >> is a strong chance of accidentally breaking existing code. Xah Lee wrote: > > could you give some technical detail on this? > > > i don't know compiler so am probably being foolish here... but i > > suppose ultimately name resolution and storage at heart is something > > like a hashtable... namely, > > > put ‹identifier 1› table > > put ‹identifier 2› table > > > and lookup is just > > > retrieve ‹identifier› table > > > and now suppose we introduced namespace, so i imagine the compiler > > simply just concat namespace component befor put, and split before > > retrieve? Steve Holden wrote: > And therein lies the danger of imagination. > Typically the namespace components are looked up one by one, so for > > this.that.theother > > first "this" will be looked up and (hopefully) yield an object with a > namespace, which will then be searched for "that", yielding another > object with a namespace in which "theother" can be looked up. That's > certainly how it works in Python: yes, but Steve, what is your point? The question is, what is the technical difficulty, if any, of introducing namespace into a existing language. You pointed out that identifier lookup at least from the perspective of language user is somewhat like a tree walking processing. However, that does not answer the main question. Xah ∑ http://xahlee.org/ ☄ -- http://mail.python.org/mailman/listinfo/python-list