UsefulLinks
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
4.
Functional Programming in Scala
4.1.
Core Functional Concepts
4.1.1.
Immutability
4.1.1.1.
Immutable Data Structures
4.1.1.2.
Benefits of Immutability
4.1.2.
Pure Functions
4.1.2.1.
Definition and Properties
4.1.2.2.
Identifying Pure Functions
4.1.3.
Referential Transparency
4.1.4.
Avoiding Side Effects
4.1.4.1.
Side Effects in Practice
4.1.4.2.
Managing Side Effects
4.2.
First-Class and Higher-Order Functions
4.2.1.
Functions as Values
4.2.1.1.
Function Types
4.2.1.2.
Assigning Functions to Variables
4.2.2.
Anonymous Functions
4.2.2.1.
Function Literals
4.2.2.2.
Lambda Expressions
4.2.2.3.
Underscore Syntax
4.2.3.
Higher-Order Functions
4.2.3.1.
Functions that Take Functions as Parameters
4.2.3.2.
Functions that Return Functions
4.2.3.3.
Common HOFs in Collections
4.3.
Closures
4.3.1.
Definition and Examples
4.3.2.
Capturing Variables
4.3.3.
Lexical Scoping
4.4.
Currying and Partially Applied Functions
4.4.1.
Currying Functions
4.4.2.
Partially Applied Functions
4.4.3.
Multiple Parameter Lists
4.5.
Function Composition
4.5.1.
Composing Functions
4.5.2.
andThen and compose Methods
4.6.
Lazy Evaluation
4.6.1.
lazy val
4.6.2.
Lazy Collections
4.6.2.1.
LazyList
4.6.2.2.
Streams
4.6.3.
Use Cases for Laziness
4.6.4.
Call-by-Name Parameters
Previous
3. Object-Oriented Programming in Scala
Go to top
Next
5. The Scala Collections Library