FunctorHub - Your one-stop shop for learning Functional Programming in Scala
Welcome to FunctorHub!
He who has a why to live for can bear almost any how. ― Friedrich Nietzsche
There is one problem with many educational resources on sciences and math: they do a very good job explaining the "how", while completely ignoring the "why". In such books, concepts will be well defined and theorems well explained. You will however find little information on how people came upon them, what problems they faced, why they solved them this way and not another. This may greatly complicate learning, especially in applied disciplines.
It is my pleasure to announce a new book on functional programming available on this site - Introduction to Functional Architectures. The main feature of this book is that it follows the development of a real application, commit by commit. The preview of the first few chapters is available for...
This book is a practical introduction to purely functional architectures. It follows the development of a real-world application, commit by commit, to see how it grows in a functional style from the very beginning. Best part, you can download a free preview of the first few chapters via the link above, to see whether this is your plate.
Purely functional style implies programming with no side effects
and mutations in your application's business logic. Mutations and
side effects mean additional mental load for the programmer, so
getting rid of them simplifies reasoning about programs. However, it
is tricky to get rid of side effects. If you do that naively, the
programs will become clumsy and hard to maintain.
There exist libraries to aid you in purely functional programming
– libraries like Cats. When introduced to such libraries, people
often get overwhelmed by very reasonable questions. Why do these
libraries exist at all? How can they help me with my particular
real-world problems? How do I get started with using them?
This course's goal is to answer these precise questions. By the
end of the course, you will make the paradigm shifts necessary for
getting started in the functional programming. You will be able to
use Cats to write simple programs, and have a good intuition on what
is going on.
Keep in mind, however, that practice makes perfect. The knowledge
from this course will not make you much difference if you don't start
to apply it in your projects straight away. If you are ready for this
– looking forward to see you at the course!
Introduction to Purely Functional Style – 01:02:01
Effect Types: The problem with the Functional Style –
Effect Types: The solution to the problem – 10:18
Implicits and the Rich Wrapper Pattern – 16:00
Type Classes: Motivation, Intuition and Theory – 09:07
Type Classes: Implementation – 08:54
Type Classes: Usage – 08:26
Monads: Motivation, Application and Interpretation – 59:18
Programming with Effect Types – 15:07
Monads. Composing Effect Computations. - 14:58
What are Monads? Interpretation of the Concept. - 12:40
Monads as Type Classes: How to Define and Implement them? -
Monads as Type Classes: Usage - How do they Work? - 10:41
Cats – the Library of Type Classes for Functional
Programming – 01:04:22
Introduction to Cats – 16:47
Usage of Cats – 16:39
Cartesian: When Monad is Not Enough – 10:53
Cartesian: Implementation and Usage – 14:22
Next steps in learning Functional Programming – 05:38
Total duration: 03:16:22
The communication with the instructor and other students can be done through the forums on the course page.