Scala: Advanced Functional Programming Training Course

Course

In City Of London

Price on request

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

City Of London (London)
See map
Token House, 11-12 Tokenhouse Yard, EC2R 7AS

Start date

On request

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

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

Price on request