Go forward to Editing Stack Entries.
Go backward to Stack and Trail.
Go up to Stack and Trail.
Stack Manipulation Commands
===========================
To duplicate the top object on the stack, press RET or SPC (two
equivalent keys for the `calc-enter' command). Given a positive
numeric prefix argument, these commands duplicate several elements at
the top of the stack. Given a negative argument, these commands
duplicate the specified element of the stack. Given an argument of
zero, they duplicate the entire stack. For example, with `10 20 30'
on the stack, RET creates `10 20 30 30', `C-u 2 RET' creates `10 20 30
20 30', `C-u - 2 RET' creates `10 20 30 20', and `C-u 0 RET' creates
`10 20 30 10 20 30'.
The LFD (`calc-over') command (on a key marked Line-Feed if you have
it, else on `C-j') is like `calc-enter' except that the sign of the
numeric prefix argument is interpreted oppositely. Also, with no
prefix argument the default argument is 2. Thus with `10 20 30' on
the stack, LFD and `C-u 2 LFD' are both equivalent to `C-u - 2 RET',
producing `10 20 30 20'.
To remove the top element from the stack, press DEL (`calc-pop'). The
`C-d' key is a synonym for DEL. (If the top element is an incomplete
object with at least one element, the last element is removed from
it.) Given a positive numeric prefix argument, several elements are
removed. Given a negative argument, the specified element of the
stack is deleted. Given an argument of zero, the entire stack is
emptied. For example, with `10 20 30' on the stack, DEL leaves `10
20', `C-u 2 DEL' leaves `10', `C-u - 2 DEL' leaves `10 30', and `C-u 0
DEL' leaves an empty stack.
The M-DEL (`calc-pop-above') command is to DEL what LFD is to RET: It
interprets the sign of the numeric prefix argument in the opposite
way, and the default argument is 2. Thus M-DEL by itself removes the
second-from-top stack element, leaving the first, third, fourth, and
so on; `M-3 M-DEL' deletes the third stack element.
To exchange the top two elements of the stack, press TAB
(`calc-roll-down'). Given a positive numeric prefix argument, the
specified number of elements at the top of the stack are rotated
downward. Given a negative argument, the entire stack is rotated
downward the specified number of times. Given an argument of zero,
the entire stack is reversed top-for-bottom. For example, with `10 20
30 40 50' on the stack, TAB creates `10 20 30 50 40', `C-u 3 TAB'
creates `10 20 50 30 40', `C-u - 2 TAB' creates `40 50 10 20 30', and
`C-u 0 TAB' creates `50 40 30 20 10'.
The command M-TAB (`calc-roll-up') is analogous to TAB except that it
rotates upward instead of downward. Also, the default with no prefix
argument is to rotate the top 3 elements. For example, with `10 20 30
40 50' on the stack, M-TAB creates `10 20 40 50 30', `C-u 4 M-TAB'
creates `10 30 40 50 20', `C-u - 2 M-TAB' creates `30 40 50 10 20',
and `C-u 0 M-TAB' creates `50 40 30 20 10'.
A good way to view the operation of TAB and M-TAB is in terms of
moving a particular element to a new position in the stack. With a
positive argument n, TAB moves the top stack element down to level n,
making room for it by pulling all the intervening stack elements
toward the top. M-TAB moves the element at level n up to the top.
(Compare with LFD, which copies instead of moving the element in level
n.)
With a negative argument -n, TAB rotates the stack to move the object
in level n to the deepest place in the stack, and the object in level
n+1 to the top. M-TAB rotates the deepest stack element to be in
level n, also putting the top stack element in level n+1.
See Selecting Subformulas, for a way to apply these commands to
any portion of a vector or formula on the stack.