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
Delivery Options
Private Group Training
Our identity is rooted in delivering exactly what our clients need.
- Pre-course call with your trainer
- Customisation of the learning experience to achieve your goals -
- Bespoke outlines
- Practical hands-on exercises containing data / scenarios recognisable to the learners
- Training scheduled on a date of your choice
- Delivered online, onsite/classroom or hybrid by experts sharing real world experience
Private Group Prices RRP from €4560 online delivery, based on a group of 2 delegates, €1440 per additional delegate (excludes any certification / exam costs). We recommend a maximum group size of 12 for most learning events.
Contact us for an exact quote and to hear our latest promotions
Public Training
Please see our public courses