Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Functional Programming for Java Developers
SPECIAL OFFER: Upgrade this ebook with O’Reilly
A Note Regarding Supplemental Files
Preface
Welcome to Functional Programming for Java Developers
Conventions Used in This Book
Using the Code Examples
Getting the Code Examples
Safari® Books Online
How to Contact Us
Acknowledgments
1. Why Functional Programming?
I Have to Be Good at Writing Concurrent Programs
Most Programs Are Just Data Management Problems
Functional Programming Is More Modular
I Have to Work Faster and Faster
Functional Programming Is a Return to Simplicity
2. What Is Functional Programming?
The Basic Principles of Functional Programming
Avoiding Mutable State
Functions as First-Class Values
Lambdas and Closures
Higher-Order Functions
Side-Effect-Free Functions
Recursion
Lazy vs. Eager Evaluation
Declarative vs. Imperative Programming
Designing Types
What About Nulls?
Algebraic Data Types and Abstract Data Types
Exercises
3. Data Structures and Algorithms
Lists
Maps
Combinator Functions: The Collection Power Tools
Persistent Data Structures
Some Final Thoughts on Data Structures and Algorithms
Exercises
4. Functional Concurrency
The Actor Model
Software Transactional Memory
Exercises
5. Better Object-Oriented Programming
Imperative, Mutable Code
The Liskov Substitution Principle
More on Design Patterns
Pattern Matching
What Makes a Good Type?
Rethinking Object-Oriented Middleware
Exercises
6. Where to Go From Here
Functional Tools for Java
A Recap
Exercises
A. References
Glossary
About the Author
Colophon
SPECIAL OFFER: Upgrade this ebook with O’Reilly
← Prev
Back
Next →
← Prev
Back
Next →