|
The # symbol is an operator, while [....] is not. While I'm not sure why () is required, it's important to observe that *all* operators don't need ().
Why a new table needs to be put in parentheses to index it?
a = {4, 3, 2, 1} [2] --error
a = ({4, 3, 2, 1})[2] --ok
at the same time length operator # works either way.