From the front end, \[InvisibleApplication]
can be entered as Esc @ Esc, and is an invisible operator for @
!. By an unfortunate combination of key-presses (there may have been a cat involved), this crept up in my code and I spent a great deal of time trying to figure out why in the world f x
was being interpreted as f[x]
. Example:
Now there is no way I could've spotted this visually. The *Form
s weren't of much help either. If you're careful enough, you can see an invisible character between f
and x
if you move your cursor across the expression. Eventually, I found this out only by looking at the contents of the cell.
There's also \[InvisibleSpace]
, \[InvisibleComma]
and \[ImplicitPlus]
, which are analogous to the above. There must be some use for these (perhaps internally), which is why it has been implemented in the first place. I can see the use for invisible space (lets you place superscripts/subscripts without needing anything visible to latch on to), and invisible comma (lets you use indexing like in math). It's the invisible apply that has me wondering...
The only advantage I can see is to sort of visually obfuscate the code. Where (or how) is this used (perhaps internally?), and can I disable it? If it's possible to disable, will there be any side effects?
\[InvisibleComma]
is sometimes useful for array indexing. For instance,{{a, b, c}, {d, e, f}}\[LeftDoubleBracket]2\[InvisibleComma]3\[RightDoubleBracket]
. This is a bit nicer if the\[LeftDoubleBracket]2\[InvisibleComma]3\[RightDoubleBracket]
portion is input as a subscript... $\endgroup$