APL draws a hard syntactic distinction between functions and arguments such as numbers.
- A name can be assigned to a function or an argument value, but this cannot be changed without erasing it.
- APL's grammar is not context free, because the way a name is parsed depends on its value.
- If a sequence of functions and arguments end in an argument, it can always be parsed as a sequence of prefix and infix applications—there's no room to use functions as arguments!