I think this is why I prefer using the python idle as a calculator. You can assign an expression to a variable, but you can always scan up (assuming your terminal window is tall enough) to see what expression you used to calculate it. People are saying how this is the point of memory on calculators but once you save to M you basically need to remember what's in there. Seeing what you did to calculate whatever is better.

In a way then, the python idle is like this but with many calculators side by side.

I like qalc (https://github.com/Qalculate/libqalculate) as a command-line calculator. It has all the basic repl features, but also excellent units support and other useful math-oriented things.