Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Functional Thinking Preface
Chapter Overview Conventions Used in This Book Using Code Examples Safari® Books Online How to Contact Us Acknowledgments
1. Why
Shifting Paradigms Aligning with Language Trends Ceding Control to the Language/Runtime Concision
2. Shift
A Common Example
Imperative Processing Functional Processing
Case Study: Number Classification
Imperative Number Classification Slightly More Functional Number Classification Java 8 Number Classifier Functional Java Number Classifier
Common Building Blocks
Filter Map Fold/Reduce
Synonym Suffering
Filter
Scala Groovy Clojure
Map
Scala Groovy Clojure
Fold/Reduce
Scala Groovy Clojure
3. Cede
Iteration to Higher-Order Functions Closures Currying and Partial Application
Definitions and Distinctions In Groovy In Clojure Scala
Currying Partially applied functions Partial (constrained) functions
Common Uses
Function factories Template Method design pattern Implicit values
Recursion
Seeing Lists Differently
Streams and Work Reordering
4. Smarter, Not Harder
Memoization
Caching
Method-level caching Caching sum Caching everything
Adding Memoization
Laziness
Lazy Iterator in Java Totally Lazy Number Classifier Lazy Lists in Groovy
Lazy list of perfect numbers
Building a Lazy List Benefits of Laziness Lazy Field Initialization
5. Evolve
Few Data Structures, Many Operations Bending the Language Toward the Problem Rethinking Dispatch
Improving Dispatch with Groovy Clojure’s “Bendable” Language Clojure Multimethods and a la carte Polymorphism
Operator Overloading
Groovy Scala
Functional Data Structures
Functional Error Handling The Either Class
Parsing Roman numerals Lazy parsing and Functional Java Providing defaults Wrapping exceptions
The Option Class Either Trees and Pattern Matching
Scala pattern matching Either trees Pattern matching for tree traversal
6. Advance
Design Patterns in Functional Languages Function-Level Reuse
Template Method Strategy The Flyweight Design Pattern and Memoization Factory and Currying
Structural Versus Functional Reuse
Code Reuse Via Structure
Refactoring to eliminate duplication Code reuse via composition
7. Practical Thinking
Java 8
Functional Interfaces Optional Java 8 Streams
Functional Infrastructure
Architecture
CQRS
Web Frameworks Databases
8. Polyglot and Polyparadigm
Combining Functional with Metaprogramming Mapping Data Types with Metaprogramming
Infinite Streams with Functional Java and Groovy
Consequences of Multiparadigm Languages Context Versus Composition Functional Pyramid
Index Colophon Copyright
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion