Scala: Advanced Functional Programming Training Course
Course
In City Of London
Description
-
Type
Course
-
Location
City of london
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
Audience
Scala programmers who wish to learn the more advanced and nuanced features of Scala
Format of the course
Part lecture, part discussion, exercises and heavy hands-on practice
Facilities
Location
Start date
Start date
Reviews
Subjects
- Programming
- Evaluation
Course programme
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
Scala: Advanced Functional Programming Training Course