| I've been wondering for a while now, if packages will be implemented and how will the namespaces be. I've used Common Lisp for some time, and I really think the per-package inner (for package's guts) and exported namespace is a win, since a loaded package would not accidentally redefine any function in the current namespace. Many of us would not want to call every function with a package prefix, but that's where namespaces merging would take place. I know I'm explaining something that's pretty familiar to any Common Lisp user, but anyway, I think ASDF's model is a win. It's not clear the true win about having an inner and an outher namespace at first sight, but when you grab a decent suite like slime, with tab autocompletion for functions and other nicities, having two namespaces keeps it clean of stuff you don't want to mess with. Regarding the syntax that would be used. I suggest the following:
ASDF's package naming conventions. Having "package::function" for inner namespace and "package:function" for exported (or outher) namespace, that is.
For functions concatenation, I suggest the following since this would collide with current syntax:
"(fn1&fn2&fn3 parameters for fn3)". Since '&' usually means "and", and it's a widely used way to exec multiple commands in sh, bash, etc. I know that redefining this at this stage would be awkward, but may I quote some PG's words: "[..] we're going to keep acting as if we were the only users. We'll change stuff without thinking about what it might break, and we won't even keep track of the changes.[..]" <-- and I couldn't agree more :) Sorry if I missed some news about these topics here and there, but it couldn't be helped... Edit: Another option would be to have just one namespace, and import only those definitions we care about from the loaded packages... I think this would be cleaner... TC. |