Functional Programming in Haskell

I’ll start by saying that I have very little exposure to functional programming. Sure, I’ve used LinQ and many of the functional-programming inspired features of C#, but I have not specifically used a functional language. F# was always in the back of my mind, but I never really got to it. I use R, but it’s not an entirely functional language either, at least not in the same way as a language such as Haskell.

So I decided that it’s time to learn functional programming. One of my main requirements was that if I will learn it, I need a language that gives me zero opportunity to utilise my existing imperative programming constructs. F# is a little too close to the dotNET framework, so I decided against it. It’s also not a pure functional language, which means I can cheat sometimes. Not something I want. I want the real deal, not some hybrid. For pure functional programming the consensus is that Haskell is the way to go. There are other functional languages out there (some are interesting like Rust and OCaml), but from a purist’s form, Haskell appears to be the one.

These blog posts then will be about my progress in this language. I’ve spent the last few months dabbling in Haskell, and mostly not getting it. My background of C++, C# and Java is affecting my thought processes, so I have to “unlearn” all of that to proceed with Haskell (or functional programming). I’ve finally seen hints of my brain getting it now.

I’ll be starting with the wiki book on Haskell.