SkillsCast coming soon.
Scala’s type system goes beyond validation - using static type information we can drive the compiler to generate desired behaviour itself, simplifying our programs and saving programmer time and effort.
With type-driven behaviour, intent can be cleanly expressed through type information, reducing boilerplate, making logic more obvious, and keeping code simpler and more concise. Write your base typeclasses once, and let the compiler generate complex combinations for you automatically.
Scala’s implicit search and typeclass traits combine to produce a powerful and flexible system for generating behaviour and producing new logic based on types. By deconstructing your types into algebraic data types of primitive types and simple type operators, you gain an easy but powerful way to reason about your types and drive the compiler to generate the behaviour you want.
YOU MAY ALSO LIKE:
- An Introduction to Dependent Typing in Scala - Advanced (SkillsCast recorded in December 2016)
- Modern development with Java (in London on 15th - 17th July 2019)
- Lightbend Scala Language - Professional (in London on 9th - 10th September 2019)
- Haskell eXchange 2019 (in London on 10th - 11th October 2019)
- Scala eXchange London 2019 (in London on 12th - 13th December 2019)
- Keynote by Dick Wall on Why API Design Matters, and Why Yours Sucks! (and mine sucks too!) (in London on 24th June 2019)
- London Java Community June (in London on 25th June 2019)
- The Elements of Tagless Final Style (SkillsCast recorded in May 2019)
- Scala 2.13 and Beyond! (SkillsCast recorded in April 2019)
More Typing, Less Typing - Driving behaviour with types
I started learning Scala almost 4 years ago, quickly getting to grips with the more functional aspects and developing an appetite for the type-level programming styles it enables. I have been writing Scala in Industry full-time since early 2013, and pushed Scala heavily at my previous organisation (Scotiabank). I am active in the Scala open source community, especially with the Typelevel organization.