Scala: Advanced Functional Programming Training Course
Description
Scala is a concise, object-oriented language with functional programming features, including currying, type inference, immutability, lazy evaluation, and pattern matching.
In this instructor-led, live training participants will learn how to use Scala’s advanced features to develop well-constructed software that is easy to write, read, test, and change. The focus of this training is on functional programming, using real-world case studies and discussion as a reference for lab exercises and activities.
By the end of this training, participants will be able to:
- Implement advanced functional programming techniques
- Make sense of complex type signatures
- Understand code through types and substitution
- Handle exceptions functionally
- Create libraries and DSLs with Scala
- Use Scala’s advanced features for pattern matching
Format of the course
- Part lecture, part discussion, exercises and heavy hands-on practice
Course Details :
Course Code : scalaadvancedfunctional
Duration : 14 hours (usually 2 days including breaks)
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
Fees : 63214 THB(Price per participant)
Venue : Regus, Bangkok
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
REGISTER FOR THE COURSE
Please enter input field