Adam|Dyalog wrote:If your N namespace script has a line saying M←#.M then all subsequent references to M will go to M in the root of the namespace.
OK, thanks! (It requires two lines per import though).
Adam|Dyalog wrote:However, it may be of interest to use M←##.M instead which goes to the N's sibling M wherever N is.
As far as I understand, since :Require cannot be used inside a :Namspace, there is no added flexibility in using M←##.M instead of M←#.M in this case, right?
The only thing I miss now is a feature to prevent a variable or a function defined in a namespace from being exported from it, so that it cannot be accessed from the outside. In the absence of such a feature, a naming convention can be used. In the programming language Go, exported identifiers start with an uppercase letter whereas non-exported identifiers start with a lower-case letter. I consider adopting this convention. One drawback with this approach, however, is that it makes it harder to distinguish a non-exported function from a (lower camel case) variable in an expression.