Useful Links
Computer Science
Programming
By Language
Scala Programming
1. Introduction to Scala
2. Scala Language Fundamentals
3. Object-Oriented Programming in Scala
4. Functional Programming in Scala
5. The Scala Collections Library
6. Advanced Language Features
7. Concurrency and Parallelism
8. Tooling and Ecosystem
9. Advanced Topics
10. Practical Applications
11. Best Practices and Idioms
Functional Programming in Scala
Core Functional Concepts
Immutability
Immutable Data Structures
Benefits of Immutability
Pure Functions
Definition and Properties
Identifying Pure Functions
Referential Transparency
Avoiding Side Effects
Side Effects in Practice
Managing Side Effects
First-Class and Higher-Order Functions
Functions as Values
Function Types
Assigning Functions to Variables
Anonymous Functions
Function Literals
Lambda Expressions
Underscore Syntax
Higher-Order Functions
Functions that Take Functions as Parameters
Functions that Return Functions
Common HOFs in Collections
Closures
Definition and Examples
Capturing Variables
Lexical Scoping
Currying and Partially Applied Functions
Currying Functions
Partially Applied Functions
Multiple Parameter Lists
Function Composition
Composing Functions
andThen and compose Methods
Lazy Evaluation
lazy val
Lazy Collections
LazyList
Streams
Use Cases for Laziness
Call-by-Name Parameters
Previous
3. Object-Oriented Programming in Scala
Go to top
Next
5. The Scala Collections Library