ERASE removes one item from the stack, for example:
2 + 3, 9 - 5, erase() => ** 5or
5 + 5, 66, erase(), 8 * 8, 10 - 5, erase() => ** 10 64The assignment arrow followed by ";" or "," (or any other expression terminator) has the same effect as "erase()". Thus:
5 + 5, 66, -> , 8 * 8, 10 - 5, -> => ** 10 64Whether you use this or "erase" is a matter of taste. (However, "erase" has to be used when a stack-clearing procedure is referred to explicitly, e.g. assigned to another procedure as input.)
ERASENUM takes an integer and removes that number of items from the stack. E.g.
1,2,3,4,5,6; erasenum(2) => ** 1 2 3 4Which is equivalent to: erasenum(1,2,3,4,5,6,2) =>
SETPOP clears the stack. For example;
2 + 3; setpop(); stacklength() => ** 0Setpop does many others things besides clear the stack; it also aborts any running program. It also prints a message whenever it is called. An immediate call of setpop occurs whenever you type CTRL-C (unless you have redefined the procedure INTERRUPT, described later).
For more on procedures that manipulate the stack, see REF STACK