当前位置:首页 > 工业技术
函数式编程思想  英文
函数式编程思想  英文

函数式编程思想 英文PDF电子书下载

工业技术

  • 电子书积分:9 积分如何计算积分?
  • 作 者:(美)弗德著
  • 出 版 社:南京:东南大学出版社
  • 出版年份:2015
  • ISBN:9787564153885
  • 页数:168 页
图书介绍:如果你想要利用Java或者其他语言中的函数式编程特性的话,这本深度指南正好可以帮助你跨越语法层面,为你演示了如何以另外一种方式来思考。软件架构师Neal Ford为中级到高级开发者展示了函数式编程如何使你可以回退到一种更抽象的层次,从而更为清晰的发现编程中的错误。本书的每一章节都为你展示了多个函数式编程思想的例子,使用了来自于Java 8和其它具备函数式编程能力的JVM语言中的大量代码示例。本书会让你专注于函数式编程的概念,从而更好的掌握它。
《函数式编程思想 英文》目录

1.Why 1

Shifting Paradigms 2

Aligning with Language Trends 4

Ceding Control to the Language/Runtime 4

Concision 5

2.Shift 11

A Common Example 11

Imperative Processing 11

Functional Processing 12

Case Study:Number Classification 17

Imperative Number Classification 17

Slightly More Functional Number Classification 19

Java 8 Number Classifier 21

Functional Java Number Classifier 22

Common Building Blocks 24

Filter 24

Map 25

Fold/Reduce 29

Synonym Suffering 31

Filter 31

Map 34

Fold/Reduce 36

3.Cede 39

Iteration to Higher-Order Functions 39

Closures 40

Currying and Partial Application 44

Definitions and Distinctions 44

In Groovy 45

In Clojure 47

Scala 47

Common Uses 51

Recursion 52

Seeing Lists Differently 52

Streams and Work Reordering 56

4.Smarter,Not Harder 59

Memoization 59

Caching 60

Adding Memoization 63

Laziness 70

Lazy Iterator in Java 70

Totally Lazy Number Classifier 72

Lazy Lists in Groovy 74

Building a Lazy List 77

Benefits of Laziness 80

Lazy Field Initialization 82

5.Evolve 83

Few Data Structures,Many Operations 83

Bending the Language Toward the Problem 85

Rethinking Dispatch 86

Improving Dispatch with Groovy 86

Clojure's"Bendable"Language 87

Clojure Multimethods and a la carte Polymorphism 89

Operator Overloading 91

Groovy 91

Scala 93

Functional Data Structures 95

Functional Error Handling 96

The Either Class 97

The Option Class 105

Either Trees and Pattern Matching 106

6.Advance 113

Design Patterns in Functional Languages 113

Function-Level Reuse 114

Template Method 116

Strategy 118

The Flyweight Design Pattern and Memoization 119

Factory and Currying 122

Structural Versus Functional Reuse 124

Code Reuse Via Structure 124

7.Practical Thinking 133

Java 8 133

Functional Interfaces 135

Optional 136

Java 8 Streams 136

Functional Infrastructure 137

Architecture 137

Web Frameworks 141

Databases 142

8.Polyglot and Polyparadigm 145

Combining Functional with Metaprogramming 146

Mapping Data Types with Metaprogramming 147

Infinite Streams with Functional Java and Groovy 148

Consequences of Multiparadigm Languages 150

Context Versus Composition 151

Functional Pyramid 154

Index 159

返回顶部