- Kiss type confusion goodbye as you learn to understand complex type signatures:
T[_[_, _], _]
,T[({type λ[A]=F[A, K]})#λ]
. - Level up your ability to write higher-order functions and define combinators to construct larger programs from smaller ones
- Learn how you can use rank-N types to program at a higher-level of abstraction, with strong correctness guarantees
- Discover how existentials help you compose functionality without exploding the size of type signatures
- Master type classes to generate generic, testable code without the tangling and non-local reasoning of inheritance
- Use "functional design patterns" like a boss, including functors, applicatives, monads, profunctors, monoids, and others
- Have your immutable cake and eat it too with "optics" that let you manipulate complex data structures with ease
- Traverse your own data structures without writing any recursive code through powerful, composable, generic recursion schemes
- Model effects with powerful, purely functional techniques that make it possible for you to test and reason
- Capture computation with declarative data structures to gain the flexibility of dynamic programming languages with the safety of static types
Created
July 21, 2016 14:19
-
-
Save jdegoes/7e6b8ccfa774a351757df88d0e3cb459 to your computer and use it in GitHub Desktop.
Advanced Functional Programming in Scala Training - ScalaWorld 2016
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment