2010/6/3 Stuart Halloway <stuart.hallo...@gmail.com> > The above point has been answered to Christophe. I was not talking about > the way that namespacing will reduce the problem by allowing different > function names (with probably different semantics) to live in different > namespaces. This is no different than distinguishing 2 ordinary functions > with the same name, living in different namespaces, from the caller's point > of vue. > > >> >> And redefining things in foreign namespaces is rather not a >> technique we should support... >> >> Eh? Does that make sense? >> > > No, I don't understand your last point. > > How can the expression problem be claimed to be (almost) solved, if only > the owner of a protocol and of a namespace can extend the protocol on types > ? > > > In languages that conflate classes and namespaces, there can be only one > place to hang a definition. So, e.g., you and I can both define a method > "correct-spelling" for strings. Mine returns an array of possible American > English spellings, and yours returns the best match Spanish spelling. > > Consumers are screwed: they can have either my method, or yours, but not > both. And the "last in wins" mechanism is utterly confusing as a tiebreaker. > > Contrast that with com.relevance.american-english/correct-spelling vs. > org.example.spanish/correct-spelling. Consumers have a clear way of choosing > the one they want, or using both! > > That is a solution to the expression problem. You seem to be asking for a > solution to something else: How do I prevent two people from saying that X > means two different things? That isn't the expression problem, and it isn't > solvable unless you allow only one person. > > I think I clearly understand the benefits of namespaces in this case. I was reacting to Meikel's sentence:
"And redefining things in foreign namespaces is rather not a technique we should support..." Stu, I don't see how your answers succeeds in explaining the above sentence. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en