# Wolfram Language & System 10.0 (2014)|Legacy Documentation

This is documentation for an earlier version of the Wolfram Language.
WOLFRAM LANGUAGE TUTORIAL

# The Meaning of Expressions

The notion of expressions is a crucial unifying principle in the Wolfram System. It is the fact that every object in the Wolfram System has the same underlying structure that makes it possible for the Wolfram System 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.

 meaning of f meaning of examples 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 the Wolfram System are often used to specify operations. So, for example, typing in causes and to be added together, while Factor[x^6-1] performs factorization.

Perhaps an even more important use of expressions in the Wolfram System, 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[a,b,c]. 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 the Wolfram System to create your own structures. For example, you might want to represent points in threedimensional 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.