For developers
Functional Programming with F#
Use immutable data, functions, and F# types to model problems and build maintainable software.
Start with a lesson that meets you where you are.
Try questions to check what you understand.
Sign in to keep your practice progress together.
Lessons
18 of 35 topics have lessons available today. Choose any available lesson.
- 01
Immutability & Expressions
Read the lesson, then try the practice.
- 02
Function Composition & Pipelines
Read the lesson, then try the practice.
- 03
Partial Application
Read the lesson, then try the practice.
- 04
Pipeline Operators
Read the lesson, then try the practice.
- 05
Function Combinators
Read the lesson, then try the practice.
- 06
Domain Modeling with Types
Read the lesson, then try the practice.
- 07
Records & Value Objects
Read the lesson, then try the practice.
- 08
Discriminated Unions
Read the lesson, then try the practice.
- 09
Making Illegal States Unrepresentable
Read the lesson, then try the practice.
- 10
Pattern Matching
Read the lesson, then try the practice.
- 11
Match Expressions
Read the lesson, then try the practice.
- 12
Error Handling & Effects
Read the lesson, then try the practice.
- 13
Railway-Oriented Programming
Read the lesson, then try the practice.
- 14
Computation Expressions
Read the lesson, then try the practice.
- 15
Higher-Order Functions
Read the lesson, then try the practice.
- 16
Functional Architecture
Read the lesson, then try the practice.
- 17
Pure Core / Imperative Shell
Read the lesson, then try the practice.
- 18
MailboxProcessor & Agents
Read the lesson, then try the practice.
Topics without lessons yet
These are part of the outline. Lessons are not available for them yet.
- Pattern Guards & Active Patterns
- Nested & Recursive Patterns
- Option & Result Types
- Collection Functions
- Map & Filter Patterns
- Fold & Reduce
- Sequence Expressions
- Monadic Operations
- Bind & Return
- Kleisli Composition
- Dependency Injection
- Ports & Adapters
- Concurrency & Parallelism
- Async Workflows
- Production Considerations
- .NET Interoperability
- Performance & Testing