a2wd | code & design

Single post

Haskell & Functional Programming

To quote from Ju Gonçalves’ excellent article on Medium (https://medium.com/@jugoncalves/functional-programming-should-be-your-1-priority-for-2015-47dd4641d6b9), Functional programming should be your top priority right now. This is a sentiment echoed in Michael Church’s answer to the question “what do software developers wish they’d known in their 20s” (http://www.quora.com/What-do-software-developers-age-30-and-over-know-now-that-they-wish-they-had-known-in-their-20s/answer/Michael-O-Church), namely that “functional programming [is] worth learning for the long term”.

Why Functional Programming?

Functional programming draws on mathematical principles and is very different to imperative/procedural, object-oriented programming, or any of a range of other programming styles.

Functional programming can be a lot more efficient than other forms of programming (http://www.infoworld.com/article/2843393/application-development/functional-programming-tradeoffs-efficiency-learning-curve.html) and in theory should lead to smaller developer teams.

Even if you never use a pure functional programming language, the concepts are both very useful and widely adopted. You will probably be able to use functional programming concepts and techniques in your language of choice.

Why Haskell?

Functional programming is implemented in a range of other languages that aren’t purely functional, such as JavaScript, Erlang, Java v8+, Lisp, Ruby, while there are few purely functional languages (most notably, Miranda). Of these, Haskell is probably the best known pure functional programming language.

If you’re going to learn functional programming, why not go all the way and dive straight into a purely functional programming language?

Learning it

 There are a number of good resources to learn functional programming and Haskell.

Currently, Delft University of Technology offers a 6 week course that runs periodically through edX (https://www.edx.org/course/introduction-functional-programming-delftx-fp101x). This offers a comprehensive introduction to both functional programming and Haskell.

Alternatively, there is the book “Learn You A Haskell For Great Good” by Miran Lipovaca which can be bought or read online for free (http://www.learnyouahaskell.com/)

Additionally, you can try it out online without downloading anything at a number of places, notable (https://tryhaskell.org/) which offers a simple tutorial. When you are ready to dive in deeper, you can get the compiler source code or binaries from (https://www.haskell.org/platform/).

05 Feb 2015Functional / Haskell

  • Recent Posts

  • Archives