PROFESSIONAL FUNCTIONAL PROGRAMMING IN C# CLASSIC PROGRAMMING TECHNIQUES FOR MODERN PROJECTS 🔍
OLIVER STRURM Wrox, 1, 2011
英语 [en] · DJVU · 2.9MB · 2011 · 📘 非小说类图书 · 🚀/duxiu/lgli/lgrs · 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.
备用文件名
lgrsnf/Sturm O. Functional Programming in C#.. Classic Programming Techniques for Modern Projects (Wiley, 2011)(ISBN 0470744588)(600dpi)(T)(C)(O)(290s)_CsAl_.djvu
备选作者
Sturm, Oliver
备用出版商
Wiley ; John Wiley [distributor
备用出版商
John Wiley & Sons, Incorporated
备用出版商
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
元数据中的注释
Includes index.
备用描述
Professional Functional Programming in C#: Classic Programming Techniques for Modern Projects
Contents
Introduction
Part I: Introduction to Functional Programming
Chapter 1: A Look at Functional Programming History
What Is Functional Programming?
Functional Languages
The Relationship to Object Oriented Programming
Summary
Chapter 2: Putting Functional Programming Into a Modern Context
Managing Side Effects
Agile Programming Methodologies
Declarative Programming
Functional Programming Is a Mindset
Is Functional Programming in C# a Good Idea?
Summary
Part II: C# Foundations of Functional Programming
Chapter 3: Functions, Delegates, and Lambda Expressions
Functions and Methods
Reusing Functions
Anonymous Functions and Lambda Expressions
Extension Methods
Referential Transparency
Summary
Chapter 4: Flexible Typing With Generics
Generic Functions
Generic Classes
Constraining Types
Other Generic Types
Covariance and Contravariance
Summary
Chapter 5: Lazy Listing With Iterators
The Meaning of Laziness
Enumerating Things with .NET
Implementing Iterator Functions
Returning IEnumerator
Chaining Iterators
Summary
Chapter 6: Encapsulating Data in Closures
Constructing Functions Dynamically
The Problem with Scope
How Closures Work
Summary
Chapter 7: Code is Data
Expression Trees in .NET
Analyzing Expressions
Generating Expressions
.NET 4.0 Specifics
Summary
Part III: Implementing Well-Known Functional Techniques in C#
Chapter 8: Currying and Partial Application
Decoupling Parameters
Manual Currying
Automatic Currying
Calling Curried Functions
The Class Context
What FCSlib Contains
Calling Parts of Functions
Why Parameter Order Matters
Summary
Chapter 9: Lazy Evaluation
What's Good about Being Lazy?
Passing Functions
Explicit Lazy Evaluation
Comparing the Lazy Evaluation Techniques
Usability
Efficiency
How Lazy Can You Be?
Summary
Chapter 10: Caching Techniques
The Need to Remember
Precomputation
Memoization
Deep Memoization
Considerations on Memoization
Summary
Chapter 11: Calling Yourself
Recursion in C#
Tail Recursion
Accumulator Passing Style
Continuation Passing Style
Indirect Recursion
Summary
Chapter 12: Standard Higher Order Functions
Applying Operations: Map
Using Criteria: Filter
Accumulating: Fold
Map, Filter, and Fold in LINQ
Standard Higher Order Functions
Summary
Chapter 13: Sequences
Understanding List Comprehensions
A Functional Approach to Iterators
Ranges
Restrictions
Summary
Chapter 14: Constructing Functions From Functions
Composing Functions
Advanced Partial Application
Combining Approaches
Summary
Chapter 15: Optional Values
The Meaning of Nothing
Implementing Option(al) Values
Summary
Chapter 16: Keeping Data From Changing
Change Is Good — Not!
False Assumptions
Being Static Is Good
A Matter of Depth
Cloning
Automatic Cloning
Implementing Immutable Container Data Structures
Linked List
Queue
Unbalanced Binary Tree
Red/Black Tree
Alternatives to Persistent Data Types
Summary
Chapter 17: Monads
What's in a Typeclass?
What's in a Monad?
Why Do a Whole Abstraction?
A Second Monad: Logging
Syntactic Sugar
Binding with SelectMany?
Summary
Part IV: Putting Functional Programming Into Action
Chapter 18: Integrating Functional Programming Approaches
Refactoring
List Filtering with a Windows Forms UI
Calculating Mandelbrot Fractals
Writing New Code
Use Static Methods
Prefer Anonymous Methods Over Named Ones
Prefer Higher Order Functions over Manual Algorithm Implementation
Prefer Immutable Data
Watch Behavior Implementation in Classes
Finding Likely Candidates for Functional Programming
Shades of Grey
Using What's There
Summary
Chapter 19: The Mapreduce Pattern
Implementing MapReduce
Abstracting the Problem
Summary
Chapter 20: Applied Functional Modularization
Executing SQL Code from an Application
Rewriting the Function with Partial Application and Precomputation in Mind
Summary
Chapter 21: Existing Projects Using Functional Techniques
The .NET Framework
LINQ
LINQ to Objects
LINQ to a Query Backend
Parallelization
Google MapReduce and Its Implementations
NUnit
Summary
Index
备用描述
"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
开源日期
2024-07-24
更多信息……

🚀 快速下载

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

🐢 低速下载

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

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