Difference between Clear and ClearAll, and between '* and Global`* ?

What is the difference between ‘Clear’ and ClearAll’ and between “`*” and “Global`*” I have used ClearAll[“Global`*”] and values remain attached to variables. What is the easiest way to clear all values to all variables going forward???

Clear removes values and definitions from a symbol while ClearAll removes attributes, messages and any default options as well as values and definitions from a symbol.

The * kind of has the same meaning it does on a unix terminal, meaning any set of characters of any length. Global` is a particular context. It happens to be the default context when you are making definitions in a notebook. When you use the command

ClearAll["Global`*"]

you are removing all definitions, values attributes, messages and default options that have been created in the Global` context and that don’t have the Protected attribute.

You can read more on this at

Clear: Remove values and definitions from symbols—Wolfram Documentation
    ClearAll—Wolfram Documentation
    Modularity and the Naming of Things—Wolfram Documentation
    Protected—Wolfram Documentation

Hi,

I am having essentially the same question. I want to find a way to clear all variable assignments and function definitions I made in a document so far. Neither

ClearAll["Global`*"]

nor

Clear["Global`*"]

work. Accourding to the Mathematica help they should.

What is the proper command?

Could you give a simple example of a case where

ClearAll["Global`*"]

does not work? Remember that this only ClearAll’s symbols in the Global` context. If you have other contexts with symbols those will not get cleared.

As a more complete approach you can use

Remove["Global`*"]

Hi, thanks for the answer!

For example,

a=1;
ClearAll["Global`*"];
a

gives the output

1

When I try it with Remove, I get the error message:

Remove::rmnsm: There are no symbols matching "Global`\.1d*". >>

As a little side question: I am not sure if I am supposed to use := or = for assigning values to variables, or for function definitions.

a) That is interesting. There could be a context issue left over from a package or notebook setting.

What do ?a and $Context give? On my 9.0.1 on Macintosh,

In[1]:= a=1;

In[2]:= ?a

Global`a
    a=1

In[3]:= ClearAll[“Global`*”];
           a

Out[4]= a

In[5]:= $Context
Out[5]= Global`

In[6]:= ?a

Global`a

b) “Global`\.1d*” probably means that some non-printing character slipped in between the back-tick and the asterisk.
Try re-typing that line.

c) Usually := is used for function definitions so the variables on the right-hand side are not given values until the function is called with arguments defined.
= is used for almost everything else, since the assignment might as well happen once, right away.

q:=7 means that every time q is used, the assignment of 7 to q is re-done.

Hi Bruce Miller, now it works, thanks a lot!

a) & b):
You were right, there was a space after the " ` " character. The " ` " is a bit cumbersome to type on the German keyboard, and requires a space, or arrow right afterwards. I did not delete the space, and didn’t notice it, since it was not displayed.
So ClearAll works perfect now, thanks a lot!

c) I see, thanks!

I’d have one further question: What the syntax “Global`*” actually mean, so I can remember it more easilly? (Especially the `* part.)

I read through all of the posts to this subject and still don’t understand what will work and what will not work. For an example I have an equation that uses 12 constants. My first line I put in all of the symbols and there values that I want to use. Example, rowna=1;rowcl=2;rowk=3; and keep on going until I have all of them listed with values. Them I put in my equation and run it. If I want to I can then can go back into my first line and change what I want too.
But if I want to get rid of all of these assigned values, what do I do. I know that I could use the Clear command and list every constant that I used, but it takes time and its easy to make a mistake.
Is there any way to clear out all variables that I have assigned values to for each section of a book that I am writing. I always end up getting caught with an old value that I forgot to clear out?

Thanks
Jake

I usually use an inelegant brute force method to clear all variables and definitions: Quit Kernel followed by Evaluate Notebook. Sometimes there is some hidden code lurking in a notebook. This is also eliminated.

I did a quick notebook and typed in x =1 and hit enter. Then typed in Quit Kernel and hit enter. Then I typed in x and a value of 1 showed up.
Am I missing something?
Jake

After you select Quit Kernel (from the Evaluation menu) do you follow up by clicking on Local in the sidebar?

No I didn’t. I did not use the drop down menus at all. I just typed it in.
Jake

That worked great, wish I had seen it a long time ago. Thanks for your help.

Jake

I’m not sure where I got the idea that:

ClearAll["Global*`"]

should work but somehow I did get that idea:

What works:

ClearAll["Global`*"]