Scheme in Haskell from http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours