Choose Your Learning Path
Master functional programming through topic-based learning paths. Start with foundations, build on data structures, learn type classes, and progress to advanced patterns.
Start with Foundations
Learn composition (Pipe/Flow) and error handling (Option/Either)
Master Data & Type Classes
Work with collections and algebraic structures
Apply to Real-World
Async operations and production patterns
๐ฏ Core Foundations
Start here! Learn function composition and error handling - the building blocks of fp-ts.
Either
Handle computations that might fail with explicit error handling
Option
Handle nullable values safely without null/undefined errors
๐ Working with Data
Apply functional patterns to collections and objects.
Array
Master functional array operations and data transformations
NonEmptyArray
Type-safe arrays with guaranteed at least one element
Record
Work with objects and dictionaries functionally
๐งฎ Type Classes
Learn algebraic structures for combining, ordering, and validating data.
Monoid
Semigroup with identity - handle empty cases elegantly
Semigroup
Combine values systematically with the concat operation
โก Async Operations
Handle asynchronous work with type-safe error handling.
TaskEither
Async operations with error handling for real-world apps
๐ Advanced Patterns
Production-ready patterns for dependency injection, side effects, and complex scenarios.
ReaderTaskEither
The ultimate composition: DI + async + error handling