
Functional Thinking
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Intro
- Copyright
- Table of Contents
- Preface
- Chapter Overview
- Conventions Used in This Book
- Using Code Examples
- Safari® Books Online
- How to Contact Us
- Acknowledgments
- Chapter 1. Why
- Shifting Paradigms
- Aligning with Language Trends
- Ceding Control to the Language/Runtime
- Concision
- Chapter 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
- Map
- Fold/Reduce
- Chapter 3. Cede
- Iteration to Higher-Order Functions
- Closures
- Currying and Partial Application
- Definitions and Distinctions
- In Groovy
- In Clojure
- Scala
- Common Uses
- Recursion
- Seeing Lists Differently
- Streams and Work Reordering
- Chapter 4. Smarter, Not Harder
- Memoization
- Caching
- Adding Memoization
- Laziness
- Lazy Iterator in Java
- Totally Lazy Number Classifier
- Lazy Lists in Groovy
- Building a Lazy List
- Benefits of Laziness
- Lazy Field Initialization
- Chapter 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
- The Option Class
- Either Trees and Pattern Matching
- Chapter 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
- Chapter 7. Practical Thinking
- Java 8
- Functional Interfaces
- Optional
- Java 8 Streams
- Functional Infrastructure
- Architecture
- Web Frameworks
- Databases
- Chapter 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
- About the Author
System requirements
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.