Functional Programming in C#: Classic Programming Techniques for Modern Projects
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.
PART I: INTRODUCTION TO FUNCTIONAL PROGRAMMING.
CHAPTER 1: A LOOK AT FUNCTIONAL PROGRAMMING HISTORY.
CHAPTER 2: PUTTING FUNCTIONAL PROGRAMMING INTO A MODERN CONTEXT.
PART II: C# FOUNDATIONS OF FUNCTIONAL PROGRAMMING.
CHAPTER 3: FUNCTIONS, DELEGATES, AND LAMBDA EXPRESSIONS.
CHAPTER 4: FLEXIBLE TYPING WITH GENERICS.
CHAPTER 5: LAZY LISTING WITH ITERATORS.
CHAPTER 6: ENCAPSULATING DATA IN CLOSURES.
CHAPTER 7: CODE IS DATA.
PART III: IMPLEMENTING WELL-KNOWN FUNCTIONAL TECHNIQUES IN C#.
CHAPTER 8: CURRYING AND PARTIAL APPLICATION.
CHAPTER 9: LAZY EVALUATION.
CHAPTER 10: CACHING TECHNIQUES.
CHAPTER 11: CALLING YOURSELF.
CHAPTER 12: STANDARD HIGHER ORDER FUNCTIONS.
CHAPTER 13: SEQUENCES.
CHAPTER 14: CONSTRUCTING FUNCTIONS FROM FUNCTIONS.
CHAPTER 15: OPTIONAL VALUES.
CHAPTER 16: KEEPING DATA FROM CHANGING.
CHAPTER 17: MONADS.
PART IV: PUTTING FUNCTIONAL PROGRAMMING INTO ACTION.
CHAPTER 18: INTEGRATING FUNCTIONAL PROGRAMMING APPROACHES.
CHAPTER 19: THE MAPREDUCE PATTERN.
CHAPTER 20: APPLIED FUNCTIONAL MODULARIZATION.
CHAPTER 21: EXISTING PROJECTS USING FUNCTIONAL TECHNIQUES.