Overview
This course aims to help learners understand the concept of the Free Monad and its implications in Scala development. By the end of the course, students will be able to define the Free Monad, identify scenarios where it is suitable for implementation, and evaluate its tradeoffs in terms of maintainability, performance, and design. The course covers topics such as MonoComposition, Functors, deferring side effects, trampolining, writing interpreters, and practical use cases. The teaching method involves a lecture-style presentation with real-world examples and insights from the instructor. This course is intended for Scala developers interested in exploring advanced functional programming concepts and enhancing their coding skills.
Syllabus
Introduction
Outline
Mono
Composition
Functors
Monads
Free Monad
Why delay evaluation
Deferring sideeffects
Trampolining
The heap
Function signature
Writing an interpreter
Using multiple interpreters
Deferring side effects
Blue Skies Scala
Know your domain
Sideeffects
Practical use cases
Other examples
Kelleys experience
Questions
Taught by
Scala Days Conferences