How to Use This Guide

The Content

This guide's content consists of chapters grouped into related sections. Each section has a theme that is based on the data we use as examples.

Here are some example data we'll work with:

  • Weather
  • The International Space Station's location
  • Earthquakes
  • Internationalization (i18n)
  • Observatories

Many examples include explanations outside and inside code blocks; the latter are done via code comments.

Advanced Content

Content that I deemed to be advanced and perhaps not immediately relevant for newcomers is marked as "Advanced" in chapters where the advanced material is contained.


This guide is generated via mdBook. Here are some quick tips:

  • Open & close the sidebar by mashing on the three horizontal lines (hamburger) icon above
  • Change the theme by mashing on the paint brush icon above
  • Do a text search through the entire guide by mashing on the magnifying glass icon above
  • Not a fan of reading on the web? Mash the printer icon above and print it or save to PDF
  • Want to link to a specific heading? Each heading is a link you can mash, and then you can share the URL with the world

Disclaimer / Personal Note

Even though I've worked with Ramda since 2016, programmed professionally since 2011, and taught programming for a while, I don't have a computer science degree (yet), and I am not a Category Theory expert. The opinions in this guide stem from my experience learning functional programming concepts through a number of languages and making heaps of mistakes along the way. There are also a lot of people who invested in me, and I am thankful for their guidance along the path.

If you find mistakes or hold different opinions, feel free to open an issue, and we can publicly discuss things there.

I'll never stop learning and being better than I was yesterday, and I hope that perspective provides you, dear reader, some value as you embark on your functional programming journey.