Because of the large number of parentheses involved, Lisp expressions can be hard to read and type correctly. To make it easier to type readable, correct expressions the listener window on the Macintosh has the following features:
XLISP 2.0 provides a simple command history mechanism. The symbols -, *, **, ***, +, ++, and +++ are used for this purpose. The top level reader binds these symbols as follows:
The variables *, ** and *** are probably most useful. For example, if you construct a plot but forget to assign the resulting plot object to a variable you can recover it using one of the history variables:
> (histogram (normal-rand 50)) #<Object: 3701682, prototype = HISTOGRAM-PROTO> > (def w *) W > w #<Object: 3701682, prototype = HISTOGRAM-PROTO> >The symbol W now has the histogram object as its value and can be used to modify the plot, as described in Section 6.5 below.
Like most interactive systems, XLISP needs a system for dynamically managing memory. The system used by XLISP is to grab memory out of a fixed bin until the bin is exhausted. At that point the system pauses to reclaim memory that is no longer being used. This process, called garbage collection, will occasionally cause the system to freeze up for about a second. When the system garbage collects the Macintosh cursor changes to a trash bag.
Occasionally a calculation will take too long, or it will appear to have gotten stuck in some kind of loop. If you want to interrupt the calculation hold down the COMMAND key and the PERIOD. This should return you to the listener. You must continue to hold down the key until the calculation stops.