The Rise of Functional Programming: Why You Should Learn Haskell