Learning problem-solving, logic/set, math, physics, economics through functional programming using Haskell