## Mathematica Programming » Code Structure

## Symbols and Expressions

### Symbols

Mathematica has one more basic type than those mentioned before: `Symbol`

In reality, every variable we've used and function we've defined (excluding pure functions) has been a symbol.

One thing to keep in mind is that the only things that can have properties or values in Mathematica are symbols, although a symbol need not have any.

All of the following are symbols:

` ````
Automatic
AxesLabel
$ModuleNumber
Rule
SetDelayed
```

` ``Automatic`

` ``AxesLabel`

` ``1205`

` ``Rule`

` ``SetDelayed`

### Expressions

In Mathematica, they say everything is an expression. What this means, really, is that outside of the primitive types everything has one common form:

` ``(head)[arg1,arg2,arg2,...,argn]`

Furthermore, there are tools to parse these structures:

` ``{1,2,3}//FullForm`

` ``List[1,2,3]`

This even applies to things like graphics. Consider the following graphic:

` ``Graphics3D[Sphere[],Boxed->False,Lighting->"Neutral",ImageSize->Small]`

It is, however, still just an expression:

` ``Graphics3D[Sphere[], Boxed->False, Lighting->"Neutral", ImageSize->Small ]//FullForm`

` ``Graphics3D[Sphere[List[0,0,0]],Rule[Boxed,False],Rule[Lighting,"Neutral"],Rule[ImageSize,Small]]`