Very often, especially new *Mathematica* users stumble over the following error: They gave, maybe hours ago, a symbol a value like `x=3`

, and later they try to use it where a function really expects a symbol:

This leads of course to an error, because the `Minimize`

call does not see the `x`

, but only its value. The same happens when you try to derive this with `D`

or `Dt`

or `Integrate`

expressions. Although the error message is very clear, most people get very confused and try to change their whole calculation.

Exactly for those situations, the formal parameter characters are made. They all share the attribute `Protected`

which states that you cannot simply assign a value to them. Therefore, you can use them in situations where you maybe derive expressions or proof formulas or where you minimize an expression

1Version 10 now has formal

Greekletters, too. – J. M.'s ennui – 2015-11-19T11:08:24.2532@R.M.

Not all formal symbols are protected:`\[FormalDelta]`

is but`\[FormalPhi]`

is not`Protected`

. According to TechSupport, this is by design, as some formal symbols are used internally, some are not. This is aggrevating, as one cannot rely on that a formal symbol has no global value set by the user. – István Zachar – 2015-12-02T10:25:20.120@R.M. Out of curiosity, would you know in which version of

Mathematica`\[Formal]`

characters were introduced? – QuantumDot – 2015-12-26T20:47:54.0873

Formal symbols are

– rm -rf – 2013-02-05T20:50:12.903`Protected`

, so they can't be assigned values (by default). So you can use it as a way of ensuring that your definitions don't have stray values. It has been used several times on this site (see some of the posts here for examples), although I don't think a question has been asked explicitly about it.