Haskell implements functional programming that's truly pure of side effects, strongly statically typed with inference and overloading, and lazily evaluated. There's really nothing else out there that's like it.
Programming in Haskell is really difficult, but I've learned to appreciate that this is because Haskell programmers are forced to fix more of their bugs at compilation time, rather than later when code is deployed.
Don't make the mistake of conflating Haskell (pure, typed, and lazy) with Lisp (impure, untyped, eager), ML, Scala, or anything else out there. It's truly a unique experience, and it's one that every good programmer must know.
Note that all the vowels are in the same column, which is reminiscent of how they're all placed on the home row under the left hand in the Dvorak keyboard layout.
I'd really much rather have a Google Navigator that can talk to a Bluetooth earpiece so that I can look where I'm going rather than at a smartphone. "Go left. No, your other left!"
Programming in Haskell is really difficult, but I've learned to appreciate that this is because Haskell programmers are forced to fix more of their bugs at compilation time, rather than later when code is deployed.
Don't make the mistake of conflating Haskell (pure, typed, and lazy) with Lisp (impure, untyped, eager), ML, Scala, or anything else out there. It's truly a unique experience, and it's one that every good programmer must know.