The Meaning of Expressions
The notion of expressions is a crucial unifying principle in
Mathematica. It is the fact that every object in
Mathematica has the same underlying structure that makes it possible for
Mathematica to cover so many areas with a comparatively small number of basic operations.
Although all expressions have the same basic structure, there are many different ways that expressions can be used. Here are a few of the interpretations you can give to the parts of an expression.
| | |
| Function | arguments or parameters | Sin[x], f[x,y] |
| Command | arguments or parameters | Expand[(x+1)^2] |
| Operator | operands | x+y, a=b |
| Head | elements | {a,b,c} |
| Object type | contents | RGBColor[r,g,b] |
Some interpretations of parts of expressions.
Expressions in
Mathematica are often used to specify operations. So, for example, typing in

causes

and

to be added together, while
Factor
performs factorization.
Perhaps an even more important use of expressions in
Mathematica, however, is to maintain a structure, which can then be acted on by other functions. An expression like

does not specify an operation. It merely maintains a list structure, which contains a collection of three elements. Other functions, such as
Reverse or
Dot, can act on this structure.
The full form of the expression

is
List
. The head
List performs no operations. Instead, its purpose is to serve as a "tag" to specify the "type" of the structure.
You can use expressions in
Mathematica to create your own structures. For example, you might want to represent points in three-dimensional space, specified by three coordinates. You could give each point as

. The "function"

again performs no operation. It serves merely to collect the three coordinates together, and to label the resulting object as a

.
You can think of expressions like

as being "packets of data", tagged with a particular head. Even though all expressions have the same basic structure, you can distinguish different "types" of expressions by giving them different heads. You can then set up transformation rules and programs which treat different types of expressions in different ways.