This is my run through the Functional Programming in Scala https://www.manning.com/books/functional-programming-in-scala book. Rather than use exercise files that come with the book (which I've done before), I'm going to be going exercise by exercise at a leisurly pace and writing down my notes and what aspects of Functional Programming I found hard to grasp and why they were hard to grasp.
I took the Coursera course Functional Programming in Scala based on the book, as well as being a member of a study group going through the book a second time. In spite of this I found that there were some concepts that I either did not grasp or did not grasp deeply enough for them to stick. And often times the gaps in knowledge surfaced when I was looking at some existing Scala code (i.e Twitter Finagle https://twitter.github.io/finagle/). So this is my attempt to 'Understand All The Things!.
I'm going to go exercise by exercise. I will post notes on each exercise and when I get confused or stuck, find additional material to get me unstuck and document why I got stuck (every roadblock is underpinned by a wrong/faulty assumption) and what resources I read to get myself unstuck. The book has 16 chapters so my initial goal is to go at the pace of about a chapter a week.
- Each exercise must be completed and correct before moving onto the next one.
- Each exercise must have tests/assertions where possible.
- All code will be written without the help of an IDE where possible(this is the thinking behind Zed Shaw's series of books Learn X the Hard Way)
- Code will be run from the command line with
scala exercise_3.scala