Please don't get wrong about my intentions. If there's any point I want to 
make, it's about my ignorence.

I simply started with the link mentioned by moigagoo and the explanation in the 
first chapter _Nim in Action_, did some experiments, found some behaviour that 
didn't seem to be described by those texts, and tried to find more patterns in 
what I had observed. This is not a straightforward process. Hence the somewhat 
unorganized abundance of 12+ rules. I don't want to fight for them, quite the 
contrary, I want them to be reduced to a clear and compact system where nothing 
can be taken out of without loosing completeness. Any help with that is 
appreciated.

In spite of the grammar rule that Araq has mentioned, which reveals a lot more 
about the underlying mechanisms indeed, I don't think we are at that stage of 
completeness yet, speaking about documentation. I still fail to understand why 
`{`}!___!{`}` or `{`}___{`}` is 3 times a valid `_` token (collapsing to 
`{`}!!{`}` or `{`}_{`}` respectively), and `{`}echo___echo{`}` is not, for 
instance. I've no idea why `x_–y`, `x––y` and `–xy` are good, and `x–_y`, 
`x__y` and `_xy` are bad, whithout adding more rules than I have read so far in 
the documentation (the dash-like symbols here are en-dashes). Yes, these are 
edge cases, and probably of no practical value in daily affairs. But what's 
wrong about that in the context of understanding a language's design?

@moigagoo: Conventions and restrictions are two different things. I was just 
aiming at the restrictions (or to put it otherwise: degrees of freedom) for 
now. Some Nim conventions can be found 
[here](https://github.com/nim-lang/Nim/wiki/Style-Guide-for-Nim-Code). I've 
read them and I do know conventions are a subset of restrictions. If I have 
used some confusing terms in this thread, I apologize for that.

@Araq: Are naming rules a good starting point for learning a new language? In 
this case, I'm inclined to think not. I've noticed the structure of Nim is 
reflected in the naming to some extent. I can see the beauty of that, but it's 
also a complication in mastering (and documenting) Nim. Maybe I should study 
Nim for a year or so before trying to really understand the production rules 
for names.

Reply via email to