There seems to be a difference in the way Mathematica assigns a value to a variable and the way it assigns a value to the next Out object. I don't understand why this is happening.
For instance, take the following command:
In= Pi // MatrixForm Out//MatrixForm= Pi
Why does the console say "Out // MatrixForm"? I would have expected Mathematica to evaluate the entire line of input and assign the value to the Out object. Instead, it seems to have ignored the MatrixForm command and instead apply it to the output that was printed.
Let me explicitly assign a variable this value (as opposed to implicitly assigning the value to Out):
In= m = Pi // MatrixForm Out//MatrixForm= Pi
Now if I look at the difference between Out and m:
In= m // FullForm Out //FullForm Out//FullForm= MatrixForm[Pi] Out//FullForm= Pi
I had assumed that Mathematica would assign the Out object the exact same value as the m object but this does not appear to be the case. What is the explanation for this? How is Out treated differently, and why?