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?
Answer
It is used in TraditionalForm
output, e.g. here:
TraditionalForm[ Hypergeometric2F1[a,b,c,x] ]
Without \[InvisibleApplication]
it would probably be hard for Mathematica to parse it back to InputForm
. Probably it is used in more places internally.
In order to get rid of it:
Locate the file UnicodeCharacters.tr
in /usr/local/Wolfram/Mathematica/8.0/SystemFiles/FrontEnd/TextResources
(or the equivalent under Windows or MacOSX), make a backup of the file, open it and delete the line
0xF76D \[InvisibleApplication] ($@$ ...
Then your cat can jump on the keyboard again.
Comments
Post a Comment