Week 5: Functors
There you go! After 4 weeks of functional programming exposure, we're ready to dive into the first
weird concept. But don't worry, it's not as hard as it looks: you'll learn what a "functor" is and
you'll realize that you've been using functors for some time without realizing it!
Week 6: Monoids
It wasn't so hard, was it? Now you're going to learn your second functional pattern: the monoid. For
that, we're going to implement a small library for validations following all your brand-new
Week 7: Monads
Finally! If you at some point have been scared about functional programming, chances are monads are
the cause. After this week, you finally don't be scared anymore, and you'll learn how monads work, how
to use them, and how to create your own ones! And most important, at the end you'll realize that
"monads are just monoids in the category of endofunctors". It's true!
Week 8: Applicatives
Now that you know what a monad is, let's go for other powerful functional pattern: the
Week 9: The Future
After these 8 weeks, you've learnt a lot of new (and old) concepts. Some of them are so powerful that
you'll need weeks (or even months) of practice to be proficient enough. So, in order to accelerate
your learning, now we're going to use all those concepts together, in a new library to deal with
asynchronous code: we're going to create the Future.
Week 10: The Further Future
And we're getting the end. Even though the asynchronous code is really useful, you sometimes need to
synchronize different operation in order to wait for their completion. So, let's make the asynchronous
synchronous in a functional way!