Functional Programming in C#: Classic Programming Techniques for Modern Projects (Wrox Programmer to Programmer) 🔍
OLIVER STRURM John Wiley & Sons; Wrox, Wrox Programmer to Programmer, 1, 2011
英语 [en] · PDF · 15.5MB · 2011 · 📘 非小说类图书 · 🚀/duxiu/lgli/lgrs/nexusstc/upload/zlib · Save
描述
Take advantage of the growing trend in functional programming.
C# is the number-one language used by .NET developers and one of the most popular programming languages in the world. It has many built-in functional programming features, but most are complex and little understood. With the shift to functional programming increasing at a rapid pace, you need to know how to leverage your existing skills to take advantage of this trend.
Functional Programming in C# leads you along a path that begins with the historic value of functional ideas. Inside, C# MVP and functional programming expert Oliver Sturm explains the details of relevant language features in C# and describes theory and practice of using functional techniques in C#, including currying, partial application, composition, memoization, and monads. Next, he provides practical and versatile examples, which combine approaches to solve problems in several different areas, including complex scenarios like concurrency and high-performance calculation frameworks as well as simpler use cases like Web Services and business logic implementation.
Shows how C# developers can leverage their existing skills to take advantage of functional programming Uses very little math theory and instead focuses on providing solutions to real development problems with functional programming methods, unlike traditional functional programming titles Includes examples ranging from simple cases to more complex scenarios Let Functional Programming in C# show you how to get in front of the shift toward functional programming.
备用文件名
nexusstc/Functional Programming in C#: Classic Programming Techniques for Modern Projects (Wrox Programmer to Programmer)/0bf1584a2ce4017291813385353496b6.pdf
备用文件名
lgli/_486985.0bf1584a2ce4017291813385353496b6.pdf
备用文件名
lgrsnf/_486985.0bf1584a2ce4017291813385353496b6.pdf
备用文件名
zlib/Computers/Programming/Oliver Sturm/Functional Programming in C#: Classic Programming Techniques for Modern Projects (Wrox Programmer to Programmer)_1241249.pdf
备选标题
Professional functional programming in C♯ : classic programming techniques for modern projects
备选作者
Advanced PDF Repair at http://www.datanumen.com/apdfr/
备选作者
Sturm, Oliver
备用出版商
Wiley Professional Development (P&T)
备用出版商
Wiley & Sons, Incorporated, John
备用出版商
Wiley ; John Wiley [distributor
备用出版商
John Wiley & Sons, Incorporated
备用出版商
Wrox]/John Wiley & Sons Ltd
备用出版商
WILEY PUBLISHING,INC.
备用出版商
Spectrum Publications
备用出版商
Halsted Press
备用版本
Chichester, West Sussex, U.K, Hoboken, N.J, England, 2011
备用版本
John Wiley & Sons, Inc. (trade), Chichester, UK, 2011
备用版本
United States, United States of America
备用版本
Hoboken, N.J., Chichester, 2009
备用版本
Hoboken, N.J., Chichester, 2011
备用版本
Hoboken, N.J, 2013
备用版本
1, 2011-03-25
备用版本
PS, 2011
元数据中的注释
lg803417
元数据中的注释
producers:
Advanced PDF Repair at http://www.datanumen.com/apdfr/; modified using iTextSharp 5.1.0 (c) 1T3XT BVBA
元数据中的注释
{"edition":"1","isbns":["0470744588","0470970286","0470971096","047097110X","9780470744581","9780470970287","9780470971093","9780470971109"],"last_page":290,"publisher":"Wiley","series":"Wrox Programmer to Programmer"}
元数据中的注释
Includes index.
备用描述
Professional Functional Programming in C#: Classic Programming Techniques for Modern Projects 5
Contents 9
Introduction 15
Part I: Introduction to Functional Programming 21
Chapter 1: A Look at Functional Programming History 23
What Is Functional Programming? 23
Functional Languages 25
The Relationship to Object Oriented Programming 27
Summary 28
Chapter 2: Putting Functional Programming Into a Modern Context 29
Managing Side Effects 30
Agile Programming Methodologies 31
Declarative Programming 31
Functional Programming Is a Mindset 32
Is Functional Programming in C# a Good Idea? 33
Summary 33
Part II: C# Foundations of Functional Programming 35
Chapter 3: Functions, Delegates, and Lambda Expressions 37
Functions and Methods 37
Reusing Functions 39
Anonymous Functions and Lambda Expressions 43
Extension Methods 46
Referential Transparency 48
Summary 50
Chapter 4: Flexible Typing With Generics 51
Generic Functions 52
Generic Classes 54
Constraining Types 55
Other Generic Types 57
Covariance and Contravariance 58
Summary 61
Chapter 5: Lazy Listing With Iterators 63
The Meaning of Laziness 63
Enumerating Things with .NET 64
Implementing Iterator Functions 67
Returning IEnumerator 70
Chaining Iterators 71
Summary 73
Chapter 6: Encapsulating Data in Closures 75
Constructing Functions Dynamically 75
The Problem with Scope 76
How Closures Work 77
Summary 80
Chapter 7: Code is Data 81
Expression Trees in .NET 83
Analyzing Expressions 84
Generating Expressions 88
.NET 4.0 Specifics 92
Summary 94
Part III: Implementing Well-Known Functional Techniques in C# 95
Chapter 8: Currying and Partial Application 97
Decoupling Parameters 97
Manual Currying 98
Automatic Currying 100
Calling Curried Functions 102
The Class Context 102
What FCSlib Contains 105
Calling Parts of Functions 106
Why Parameter Order Matters 108
Summary 109
Chapter 9: Lazy Evaluation 111
What's Good about Being Lazy? 112
Passing Functions 113
Explicit Lazy Evaluation 115
Comparing the Lazy Evaluation Techniques 118
Usability 118
Efficiency 118
How Lazy Can You Be? 119
Summary 120
Chapter 10: Caching Techniques 121
The Need to Remember 121
Precomputation 122
Memoization 127
Deep Memoization 130
Considerations on Memoization 134
Summary 135
Chapter 11: Calling Yourself 137
Recursion in C# 137
Tail Recursion 139
Accumulator Passing Style 141
Continuation Passing Style 142
Indirect Recursion 146
Summary 149
Chapter 12: Standard Higher Order Functions 151
Applying Operations: Map 152
Using Criteria: Filter 152
Accumulating: Fold 153
Map, Filter, and Fold in LINQ 158
Standard Higher Order Functions 160
Summary 160
Chapter 13: Sequences 161
Understanding List Comprehensions 161
A Functional Approach to Iterators 162
Ranges 163
Restrictions 166
Summary 167
Chapter 14: Constructing Functions From Functions 169
Composing Functions 169
Advanced Partial Application 172
Combining Approaches 175
Summary 178
Chapter 15: Optional Values 179
The Meaning of Nothing 179
Implementing Option(al) Values 180
Summary 185
Chapter 16: Keeping Data From Changing 187
Change Is Good — Not! 187
False Assumptions 188
Being Static Is Good 189
A Matter of Depth 190
Cloning 191
Automatic Cloning 193
Implementing Immutable Container Data Structures 197
Linked List 197
Queue 203
Unbalanced Binary Tree 205
Red/Black Tree 207
Alternatives to Persistent Data Types 210
Summary 211
Chapter 17: Monads 213
What's in a Typeclass? 214
What's in a Monad? 217
Why Do a Whole Abstraction? 218
A Second Monad: Logging 221
Syntactic Sugar 223
Binding with SelectMany? 224
Summary 225
Part IV: Putting Functional Programming Into Action 227
Chapter 18: Integrating Functional Programming Approaches 229
Refactoring 230
List Filtering with a Windows Forms UI 231
Calculating Mandelbrot Fractals 236
Writing New Code 244
Use Static Methods 244
Prefer Anonymous Methods Over Named Ones 246
Prefer Higher Order Functions over Manual Algorithm Implementation 247
Prefer Immutable Data 248
Watch Behavior Implementation in Classes 249
Finding Likely Candidates for Functional Programming 249
Shades of Grey 250
Using What's There 251
Summary 252
Chapter 19: The Mapreduce Pattern 253
Implementing MapReduce 254
Abstracting the Problem 257
Summary 260
Chapter 20: Applied Functional Modularization 261
Executing SQL Code from an Application 261
Rewriting the Function with Partial Application and Precomputation in Mind 263
Summary 265
Chapter 21: Existing Projects Using Functional Techniques 267
The .NET Framework 267
LINQ 269
LINQ to Objects 269
LINQ to a Query Backend 273
Parallelization 275
Google MapReduce and Its Implementations 277
NUnit 278
Summary 280
Index 281
备用描述
"Take advantage of the growing trend in functional programming. C♯ is the number-one language used by.NET developers and one of the most popular programming languages in the world. It has many built-in functional programming features, but most are complex and little understood. With the shift to functional programming increasing at a rapid pace, you need to know how to leverage your existing skills to take advantage of this trend. Functional Programming in C♯ leads you along a path that begins with the historic value of functional ideas. Inside, C♯ MVP and functional programming expert Oliver Sturm explains the details of relevant language features in C♯ and describes theory and practice of using functional techniques in C♯, including currying, partial application, composition, memoization, and monads. Next, he provides practical and versatile examples, which combine approaches to solve problems in several different areas, including complex scenarios like concurrency and high-performance calculation frameworks as well as simpler use cases like Web Services and business logic implementation ... Shows how C♯ developers can leverage their existing skills to take advantage of functional programming. Uses very little math theory and instead focuses on providing solutions to real development problems with functional programming methods, unlike traditional functional programming titles. Includes examples ranging from simple cases to more complex scenarios.. Let Functional Programming in C♯ show you how to get in front of the shift toward functional programming."-- Provided by publisher
备用描述
Annotation Take advantage of the growing trend in functional programming.
C# is the number-one language used by .NET developers and one of the most popular programming languages in the world. It has many built-in functional programming features, but most are complex and little understood. With the shift to functional programming increasing at a rapid pace, you need to know how to leverage your existing skills to take advantage of this trend. Functional Programming in C# leads you along a path that begins with the historic value of functional ideas. Inside, C# MVP and functional programming expert Oliver Sturm explains the details of relevant language features in C# and describes theory and practice of using functional techniques in C#, including currying, partial application, composition, memoization, and monads. Next, he provides practical and versatile examples, which combine approaches to solve problems in several different areas, including complex scenarios like concurrency and high-performance calculation frameworks as well as simpler use cases like Web Services and business logic implementation. Shows how C# developers can leverage their existing skills to take advantage of functional programming Uses very little math theory and instead focuses on providing solutions to real development problems with functional programming methods, unlike traditional functional programming titles Includes examples ranging from simple cases to more complex scenarios Let Functional Programming in C# show you how to get in front of the shift toward functional programming
开源日期
2012-03-09
更多信息……

🚀 快速下载

成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️

🐢 低速下载

由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)

所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
  • 对于大文件,我们建议使用下载管理器以防止中断。
    推荐的下载管理器:Motrix
  • 您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
    推荐的电子书阅读器:Anna的档案在线查看器ReadEraCalibre
  • 使用在线工具进行格式转换。
    推荐的转换工具:CloudConvertPrintFriendly
  • 您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
    推荐的工具:亚马逊的“发送到 Kindle”djazz 的“发送到 Kobo/Kindle”
  • 支持作者和图书馆
    ✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
    📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。