Contents and Outline

Contents

Some notes related to acronyms I use in these Introduction to Functional Programming videos:

  • JIT means that a video is a just in time video. In videos like these, I’m introducing content you need to know for the next video.
  • FEH is an acronym for functional error handling.
  • TDL means that a video is related to the To-Do List application we’ll be developing.

Outline

If you want to know what you’re about to get into in the rest of this video series, read the following outline, which is something of a map of the following territory.

Conversely, if you DON’T want to know what we’re about to get into and you prefer it to be a surprise, please skip the rest of this.

The outline goes a little like this:

  • I start by looking at how little I used to use data types in Java/OOP
  • Then I look at how much I do use them in Scala/OOP and Scala/EOP

After that I show:

  • Using data types isn’t a bad thing, and in fact, it’s a very good thing
  • The importance of immutable things (variables and data structures)
  • The importance of pure functions: specifically that you can trust them, because they cannot lie
  • That the concepts of immutable things and pure functions naturally lead to EOP

Then I show how to write a Word Count application with these concepts. As we go through that application we’ll discover a few other things.

After that, I do a little recap of Java/OOP code compared to the Scala/EOP code you saw in the Word Count example.

After this we jump into the next important topic, functional error-handling:

  • I explain the reasoning behind functional error-handling
  • We look at Scala’s three error-handling data types: Option, Try, and Either
  • I show how to implement the Word Count application using Try
  • Then we build a larger To-Do List application, using all of these concepts
  • This application uses a simulated database, so you see the techniques you’ll use when accessing a remote database or REST API

And at the end I show just how close you are to using FP libraries like ZIO and Cats Effect.

Related