Part 3 Applied Functional Programming

 

You have learned everything you need to know to easily write real-world applications using functional programming! As proof, in this part we will implement such a real-world application that uses Wikidata as a data source. We will apply all the techniques we learned earlier in the book and show that they can be used to create readable and maintainable code.

In chapter 11 we will introduce requirements for an application that generates a very peculiar travel guide. We will need to create an immutable-based data model, use proper types in signatures and IO to integrate with Wikidata, caching, and multiple threads to make the application fast. We will wrap all of these concerns in pure functions and additionally show how you may be able to reuse your object-oriented design intuitions in the functional world. As has been the case in the first ten chapters, we will still keep maintainability, readability, and testability at the back of our heads.

In chapter 12 we will show how to test the application we developed in chapter 11 and how easy it is to maintain, even in the presence of big requirement changes. We will also show how we can use tests to discover unknown bugs and test-driven development to implement new business features.