As you may already know, Mathematica is a wonderful piece of software.
However, it has a few characteristics that tend to confuse new (and sometimes not-so-new) users. That can be clearly seen from the the fact that the same questions keep being posted at this site over and over again.
Please help me to identify and explain those pitfalls, so that fewer new users make the mistake of walking into these unexpected traps.
Suggestions for posting answers:
- One topic per answer
- Focus on non-advanced uses (it's intended to be useful for beginners/newbies/novices and as a question closing reference)
- Include a self explanatory title in h2 style
- Explain the symptoms of problems, the mechanism behind the scenes and all possible causes and solutions you can think of. Be sure to include a beginner's level explanation (and a more advanced one too, if you're in the mood)
- Include a link to your answer by editing the Index below (for quick reference)
Stability and usability
Syntax and semantics
Understand the difference between
Set
(or=
) andEqual
(or==
)The displayed form may substantially differ from the internal form
Mathematica's own programming model: functions and expressions
Assignment and definition
Understand the difference between
Set
(or=
) andSetDelayed
(or:=
)Attempting to make an assignment to the argument of a function
General guidelines
Understand the difference between exact and approximate (Real) numbers
User-defined functions, numerical approximation, and NumericQ
Understanding
$Context
,$ContextPath
the parsing stage and runtime scoping constructs
Graphics and images
Tricky functions
f[x_]:=a; f[x_Integer]=b
; 2. Forgotten underscore in patternsf[x]=a
3.Set
vsSetDelayed
; 4.m = {{1, 2}, {3, 4}} // MatrixForm
and thenEigenvalues[q]
; 5. Plotting complex function produces empty plot without any warnings. $\endgroup$$HistoryLength
in there, a memory management in general category includingMaxMemoryUsed
andMemoryConstrained
etc $\endgroup$CurrentImage
). $\endgroup$