Frequently Asked Questions
WReach? Is that connected to WRI somehow?
The "WR" in my name has nothing to do with the company that develops Mathematica. It is just a coincidence. If I had known that I was going to post so much about Mathematica when I first joined StackExchange, I would have chosen a different handle.
Why do you start all your global variable names with
I use dollar signs for ad hoc global variables because I have been bitten too many times by accidentally assigning an own-value to a symbol that I happen to use, for example, in a symbolic equation. So I am in the habit of writing
$x instead of
x. I stick to that convention even for longer symbols like
$initialUrl. Just like the regular symbol convention, Mathematica's predefined global symbols all start with a capital letter after the
$. My ad hoc symbols always start with a lower case letter, so there is no conflict.
Why do you put semicolons and commas at the beginning of the line instead of at the end like a normal person?
Why don't you like to answer questions about Mathematica performance?
The Mathematica performance model is very opaque. Unless a performance question specifies a very specific set of circumstances, there are a lot of factors to take into account:
- performance goal: speed vs. memory vs. quality
- symbolic vs. numeric operations
- the data types of the operands
- the size of the collection objects (lists, associations, etc.)
- the presence or absence of packed arrays
- packed array preservation or stripping by operators
- system properties and expression characteristics that control auto-compilation
- method selection within operators
- compilibility of operators
- various system caches, some visible some not, some flushable some not
- the version of Mathematica being used (expression performance has been known to change by orders of magnitude microrevs)
- ability to verify correctness
It is hard to write good answers that make performance claims without qualifying these factors.