On the other hand, I wouldn't like the inconsistency of being able to use `x` to
write `bla.x`, `{ x = 123 }`, `function x()`, `x()`; but then being
able to use `and` to write `bla.and`, `{ and = 123 }`, `function
and()` but not `and()`.
I think a language with different whitespace rules (where `and(x)` ≠
`and (x)`) could get away with allowing keywords as identifiers
consistently, but that's not the case in Lua.
But doesn't this discussion apply only to indexed fields to a table?
I personally don't see any issues or inconsistencies in being able to do `table_name.and = blah` but not `local function and()`.
They seem like very different contexts to me and perhaps I would enjoy the flexibility, but I agree it could decrease readability.
--
Etiene Dalcol
Software Engineering student at ENSTA Bretagne and PUC-Rio