The stack is a buffer where all the equations you are currently working with can be created and manipulated.
The best way to start learning to use this is by an example.
Suppose we wanted to create the expression "integrate(x^2*sin(x)/3,x)"
The way we construct this formula in a stack based way is to work your way out.
We first start by making the x^2 term.
type "x" hit ENTER
type "2" hit ENTER
type "^" hit ENTER
In the stack you should see "x^2"
Next we are going to make the sin(x) term
type "x" hit ENTER
type "sin" hit ENTER
You should see "x^2" in the first element in the stack and "sin(x)" as the second element in the stack.
We are going to multiply the two terms together and divide by 3
type "*" hit ENTER
type "3" hit ENTER
type "/" hit ENTER
You should now see "(x^2*sin(x))/3"
Now to integrate the expression
type "x" hit ENTER
type "integrate" hit ENTER
You now have the expression "integrate((x^2*sin(x))/3,x)"
To get the result type "r" or "result" and hit ENTER
The last element on the stack should now be the answer to that integral.
While the method above might seem complicated to make an integral, it is not the only way to create that expression. You could have easily just typed "integrate((x^2*sin(x))/3,x)" directly and it would have worked too. The point was to show that you can combine different pieces of expressions together.
Amazingly you can also ask that integral problem in a english like question.
In the command line you can write something like...
"What is the integral of x squared over three times sin of x in terms of x"
and it would add integrate((x^2*sin(x))/3,x) to the stack.
Here are all the commands. Some of the commands have shortcuts.
Goes back one step. If called twice it will go back to the original state.
Add last two elements on the stack.
Sign negate the last element on the stack.
And last two elements on the stack.
Or last two elements on the stack.
Boolean negate the last element on the stack.
Subtract last element from second to last.
Multiply last two elements on the stack.
Apply dot operator to the last two elements on the stack
Divide last two elements on the stack where the last element is the divisor.
Exponentiate second to last element to the last element.
Calculate the result of the last element.
Remove the last element on the stack.
Swap the last two elements on the stack.
Set the last two elements on the stack equal to each other.
Set the second to last element greater than the last element.
Set the second to last element less than the last element.
Set the second to last element becoming the last element.
Set the second to last element defined to the last element.
Create a new list expression and add it to the stack.
Take last element in the stack and add it to the list in the second to last element.
Break apart the last element in the stack and dump pieces into stack.
Clear all stack elements.
Duplicate last element on the stack.
Roll stack downwards.
Create a sum of all the elements in the stack.
Create a product of all the elements in the stack.
Close the program.
Sorts the last element in the stack to its cononical ordering method