Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Introduction
Chapter 1: Lets Compare Programming Paradigms
Procedural Programming
Logical Programming
Functional Programming
Object-Oriented Programming (OOP)
Chapter 2: First Class Functions
Why Do First-Class Functions Matter?
Chapter 3: Pure Functions
What Is a Pure Function?
Unreasonably Pure Functional Programming
Essential Functions
Testing
Chapter 4: Immutability
Why Do We Need Immutables?
Chapter 5: Refactoring
When and How You Should Refactor
Best Practices
Chapter 6: Higher Order Functions
.map()
.reduce()
.filter()
Combining All Three Functions
Why Can't You Use forEach()?
Chapter 7: Functional Composition
Chapter 8: Currying and Closures
Currying in Mathematics
Currying and Partial Function Application
How Useful Is Currying?
A General Curry Function
Closures
Chapter 9: Referential Transparency
What Is Referential Transparency? What Isn't It?
The Benefits of Referential Transparency
Chapter 10: Lambda Calculus
Working with Variables
Using Application
Using Abstraction
Conversion Rules
Evaluation Normal, Applicative, and Lazy
Chapter 11: Recursion
Writing a Recursive Function
For Loop vs. Recursion
Leveraging Recursion
Tail Recursion
Chapter 12: Lists
Haskell List Operations
Heads and Tails
How to Add a New Item
The Append Operator
Strings
Type Mismatches
Handling Lists Using Recursion
Chapter 13: Pattern Matching
Branching Madness
Here Comes Pattern Matching
Match Everything
Extractors and Pattern Matching
Chapter 14: Monads, Applicatives, and Functors
What Is a Functor?
What Is an Applicative Functor?
What Is a Monad?
Summary
Conclusion
References
← Prev
Back
Next →
← Prev
Back
Next →