Over the past few years, Functional Programming has entered the mainstream when it comes to libraries and frameworks for various kinds of technologies and there are plenty of tutorials and resources to learn the basics.
With that being said, when it comes to building something non-trivial, there's a gap between what tutorials cover and real world situations. For example, how do we model a system makes illegal states unrepresentable? How do we handle operations that can fail? How do we combine business rules with applications rules?
In this talk, I'm going to show you how to tackle these concerns as we model the game of Blackjack. By doubling down on concepts like algebraic data types, Options, and Results, you'll learn how to build applications that work in the real world!