## Using Mathematica » Basics

## Clear

Before we can really begin working with Mathematica we also need to discuss the function `Clear`

, which can be a life-saver.

It just removes any definitions we've given to a symbol, which can be a bigger deal than one might think. Consider the following case:

` ````
aVariableIUsedBefore=1000;
aVariableIUsedBefore[x_]:=x*10;
```

Notice we get an error because the way Mathematica reads this, we're trying to assign a function to the number 1000.

Here, though, all we need to do is use `Clear`

and we're good to go.

` ``Clear[aVariableIUsedBefore]`

Sometimes we've made a lot of definitions and we want to `Clear`

them all, just to prevent hard to find errors from cropping up. In this case we can do the following:

` ``Clear["Global`*"]`

What this does is removes all the definitions for any symbol that looks like `Global`symbolName`

which is usually every symbol we've defined.

Sometimes we want to protect some symbols, like fundamental constants, from being erased. In this case we just need to make a symbol that doesn't look like `Global`symbolName`

. A useful way to do this is to put the type of thing it is before it:

```
Constant`PlanckConstant = 6.626*10
```^{-34} (*J*s*);

This sort of thing is discussed more at length in the Contexts section, but first let's just see that this does what we want it to. First let's define a bunch of things:

` ````
a=100;
b=2.50;
c[x_]=RandomReal[]*x;
x[x_]:=x[x];
a
b
c[10]
x[10]
```

` ``100`

` ``2.5``

` ``9.548010769916973``

` ``10[10]`

And now we'll clear them:

` ````
Clear["Global`*"]
a
b
c[10]
x[10]
```

` ``a`

` ``b`

` ``c[10]`

` ``x[10]`

But our constant is fine:

` ``Constant`PlanckConstant`

` ``6.6260000000000015`*^-34`

And for those who don't want to type out a long name every time they use this constant in a problem, here's a trick: use some variable just for the problem to which you assign the value of the constant. e.g:

```
Constant`SpeedOfLight=3*10
```^{8}(*m/s*);

` ````
h=Constant`PlanckConstant;
c=Constant`SpeedOfLight;
λ=1*10^-3 (*m*);
h*c/λ (*J*)
```

` ``1.9878000000000004`*^-22`

Then just clear all of this before starting the next problem:

` ``Clear["Global`*"]`

And now none of that can leak into the next problem:

` ````
h
c
λ
```

` ``h`

` ``c`

` ````
λ
```