The Road to Functional Programming

Educational material to learn functional programming in Scala, from scratch, in a structured and comprehensive way.

View project on GitHub

The Road to Functional Programming

Educational material to learn functional programming in Scala, from scratch, in a structured and comprehensive way.

This is work in progress, only few chapters are available!

Website: https://colofabrix.github.io/the-road-to-fp/

The original scratchpad with my notes for this website.

Solved exercises of the chapters.

Summary of functional patterns

Chapters

Chapter 0: Introduction - Exercises: solutions

Chapter 1: A different way of thinking - Exercises: solutions

Chapter 2: A quick tour of the Scala object keyword - Exercises: solutions

Chapter 3: Scala language feature: Case classes - Exercises: solutions

Chapter 4: Pure functions and referential transparency - Exercises: solutions

Chapter 5: Composition - Exercises: solutions

Chapter 6: Scala language feature: Lazyness - Empty

Chapter 7: Advanced function concepts - Exercises: solutions - In progress

Chapter 8: Recursion - Empty

Chapter 9: Purely functional data structures - Empty

Chapter 10: Scala language feature: Higher order functions - Empty

Chapter 11: Ad-hoc polymorphism: Typeclasses - Empty

Chapter 12: Functors and the world of containers - Empty

Chapter 13: Monoids - Empty

Chapter 14: Applicative functors - Empty

Chapter 15: Optics - Empty

Chapter 16: Introducing monads - Empty

Chapter 17: Most common monads - Empty

Chapter 18: Functional error handling - Empty

Chapter 19: Monad transformers - Empty

Chapter 20: Free applicatives and free monads - Empty

Chapter 21: Comonads - Empty

Chapter 22: Introduction to Category Theory - Empty

Chapter 23: Basic concepts of Category Theory - Empty

Chapter 24: Revisiting structures and tools using Category Theory - Empty

Chapter 25: Few concepts in Type theory - Empty

Chapter 26: Type Level Programming - Empty

Author Information

Scala developer since 2014 and passionate about functional programming, former dev-ops and sysadmin engineer, I love brewing and discovering beer around the world and I compete in 4-way team formation skydiving.

Fabrizio Colonna

LinkedIn

@ColOfAbRiX

License

Creative Commons Attribution 4.0 International License

Creative Commons License

Contributors

Issues, feature requests, ideas, suggestions, etc. are appreciated and can be posted in the Issues section.

Pull requests are also very welcome. Please create a topic branch for your proposed changes. If you don’t, this will create conflicts in your fork after the merge.