Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Introduction
Updates to the Book
Acknowledgements
Thinking Functionally
Example: Battleship
First-Class Functions
Type-Driven Development
Notes
Wrapping Core Image
The Filter Type
Building Filters
Composing Filters
Theoretical Background: Currying
Discussion
Map, Filter, Reduce
Introducing Generics
Filter
Reduce
Putting It All Together
Generics vs. the Any Type
Notes
Optionals
Case Study: Dictionaries
Combining Optional Values
Why Optionals?
QuickCheck
Building QuickCheck
Making Values Smaller
Arbitrary Arrays
Using QuickCheck
Next Steps
The Value of Immutability
Variables and References
Value Types vs. Reference Types
Discussion
Enumerations
Introducing Enumerations
Associated Values
Adding Generics
Optionals Revisited
The Algebra of Data Types
Why Use Enumerations?
Purely Functional Data Structures
Binary Search Trees
Autocompletion Using Tries
Discussion
Diagrams
Drawing Squares and Circles
The Core Data Structures
Calculating and Drawing
Creating Views and PDFs
Extra Combinators
Discussion
Generators and Sequences
Generators
Sequences
Case Study: Traversing a Binary Tree
Case Study: Better Shrinking in QuickCheck
Beyond Map and Filter
Parser Combinators
The Core
Choice
Sequence
Convenience Combinators
A Simple Calculator
Case Study: Building a Spreadsheet Application
Sample Code
Parsing
Evaluation
The GUI
Functors, Applicative Functors, and Monads
Functors
Applicative Functors
The M-Word
Discussion
Conclusion
Further Reading
What is Functional Programming?
Closure
Additional Code
Standard Library
Chapter 6, QuickCheck
Chapter 10, Diagrams
Chapter 11, Generators
Chapter 12, Parser Combinators
← Prev
Back
Next →
← Prev
Back
Next →