Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
Introduction
- Who uses Scala?
- Developing large-scale, purely-functional programs
Overview of Functional Programming in Scala
- Higher-Order Functions
- Combinators
- Polymorphic Functions
Mastering Scala Types
- Product types & Sum types
- Supertypes & Subtypes
- Universals & Existentials
- Higher-Kinded Types
- Type Lambdas
Mastering Scala Type Classes
- Classes & Instances
- Tricks with Implicits
- Polymorphic Constraints
Case Study: Highly-stateful programs with complex external systems
Coding Exercise
Working with Data
- Immutable Data & Recursion
- Catamorphisms & Church Encoding
- Fixed-Point Data
- Recursion Schemes
Advanced Pattern Matching in Scala
- Deep matching
- Using extractors
Case Study: Scala and Big Data
Coding Exercise
Using Functional Patterns
- Options, Eithers & Validations
- Semigroups & Monoids
- Functors
- Applicatives
- Monads
- Foldables & Traversables
- Lenses
Working with Effects
- IO
- State
- Reader
- Combining Effects
Case Study
- TBD
Coding Exercise
Functional Architecture
- Modern Architecture for FP
- Reified Computation & Deferred Evaluation
- Compositional Evaluators
- Optimization Techniques
- Purely Functional Mocking
Libraries and DSLs
- Custom control structures with by-name parameters
- Building well-designed libraries and internal DSLs
Functional Exception Handling
- Traditional exception handling
- Functional exception handling
- Using Try with For comprehensions
Final Coding Exercise and Evaluation
Closing Remarks
Requirements
- Hands on experience in Scala programming
- Familiarity with pattern matching and traits
Audience
- Scala programmers who wish to learn the more advanced and nuanced features of Scala
14 Hours