Useful Links
Computer Science
Programming
Functional Programming
1. Introduction to Functional Programming
2. Foundational Concepts
3. Core Techniques and Patterns
4. Type Systems in Functional Programming
5. Advanced Functional Abstractions
6. Functional Architecture and Design
7. Functional Programming in Practice
8. Performance Considerations
9. Advanced Topics
10. Further Study and Resources
Functional Architecture and Design
Handling Side Effects
Isolating Impurity
The Functional Core, Imperative Shell Pattern
Encapsulating Effects with Monads
Effect Systems
Dependency Injection Patterns
Error and Exception Handling
Using Maybe Types
Using Either Types
Composing Error-Handling Functions
Recovering from Errors
Error Accumulation
Validation Patterns
Asynchronous Operations
Futures and Promises as Functional Constructs
Composing Asynchronous Computations
Error Handling in Asynchronous Contexts
Async Monads
Reactive Programming Patterns
State Management
Passing State Explicitly
Using the State Monad
Modeling State Transitions
Immutable State Updates
Event Sourcing
CQRS Patterns
Concurrency and Parallelism
Statelessness and Thread Safety
Data Parallelism
Functional Patterns for Concurrency
Map-Reduce
Pipelines
Actors and Message Passing
Software Transactional Memory
Lock-Free Data Structures
Parallel Collection Operations
Modularization and Code Organization
Pure Functions and Module Boundaries
Dependency Injection via Functions
Layered Architectures
Hexagonal Architecture
Domain-Driven Design with Functional Programming
Module Systems
Domain Modeling
Making Illegal States Unrepresentable
Type-Driven Development
Domain-Specific Languages
Algebraic Data Types for Domain Modeling
Previous
5. Advanced Functional Abstractions
Go to top
Next
7. Functional Programming in Practice