basic reverse polish notation calculators

These are the Ruby and Haskell versions. The Ruby version was written
first. Notice how the Haskell version makes everything explicit, and
breaks down the tasks of adding things into the stack and reducing it
into separate functions, whereas the Ruby version just mashes everything
together into one global `while` loop.