Clearing values

• To: mathgroup at christensen.cybernetics.net
• Subject: [mg2053] Clearing values
• From: Allan Hayes <hay at haystack.demon.co.uk>
• Date: Mon, 18 Sep 1995 01:50:36 -0400

```I attach some comments (3) on the reply (2), to the following query
(1).  I'm not sure of the source of (2).

(1) Query from: rutter at euler.mcs.utulsa.edu (Michael A. Rutter)

>Does anybody know a simple command to clear all the variables and
>functions in a Mathematica session.  We have been using Clear /@
>Names["Global`*"], but since we are teaching a freshman level
Calc>course, this is difficult to explain.

*********
(2) Reply(I'm not sure of the source of this)

This has been discussed before on this group - basically, Clear is
the only clean way to do it; you can clothe it in some nicely-named
convenience function but that's about all.

In my experience, it's generally better to tell students to quit
and start again. Pretty low tech, you might say, but there are

1) it helps to convince timid students that the computer won't
break if you do something drastic like quitting, and that is still
quite a common attitude with British students (exposure to computers
in schools is still patchy)

2) it encourages the habit of frequently saving work you want to
keep, as insurance against software crashes (and even Mathematica on
a big PowerMac will still do that if you confuse it enough).

3) memory problems with Mathematica are often associated with front
end memory (say, you're doing lots of 3D graphics) and Clear'ing
out the kernel doesn't help that at all.

*******************

I find that the simplest way is to use Clear["`*"], which clears
all definitions for terms in the current context (usually
"Global`").
ClearAll["`*"] will, in addition, clear attribute assignments.
To do a morethhrooghhcllarrng, iincluding clearing loaded packages,
you can use CleanSlate[] from the package CleanSlate`, which can be
to suppress information and hide output then arrange for
SetOptions[CleanSlate, Verbose -> False] to be loaded automatically
when the kernel is loaded and put ; after CleasnSlate[]).

I do not like to use quit and restart as a way of clearing because:

1.It gives students the impression that using the system is clumsy
and time-consuming (which is especially undesirable for those
relatively unfamiliar with computers)

2.Many times we just want to clear the definitions tagged by
certain symbols (for which Clear[f,g,...] can be used) or
definitions with a specific right hand side (for which rhs = . can
be used).

3.The objectives of clearing definitions and clearing memory (which
may certainly need a restart, as noted in (2) 3 ) are different.

The need to save frequently in order to avoid loss can be
demonstrated by showing that closing the kernel throws away all
stored user definitions and that quitting also looses all unsaved
material from the notebook -- the lesson will undoubtedly be
reinforced the hard way!

Fear of breaking the system can be countered by quitting Mma,by
closing down the machine and by even switching power off and then
showing that all is well. Also by getting students to try to change
the definition of a system function (eg by entering Sin[6] = 7) and
letting them find that this is not possible(without unprotecting
it).

Allan Hayes
De Monfort University Leicester UK
hay at haystack.demon.co.uk

```

• Prev by Date: Re: Mathematica and NetScape
• Next by Date: MMA for finance/econometrics
• Previous by thread: Re: New user question?
• Next by thread: MMA for finance/econometrics