Skip to content

Instantly share code, notes, and snippets.

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