Book Image

Functional C#

Book Image

Functional C#

Overview of this book

Functional programming makes your application faster, improves performance, and increases your productivity. C# code is written at a higher level of abstraction, so that code will be closer to business requirements, abstracting away many low-level implementation details. This book bridges the language gap for C# developers by showing you how to create and consume functional constructs in C#. We also bridge the domain gap by showing how functional constructs can be applied in business scenarios. We’ll take you through lambda expressions and extension methods, and help you develop a deep understanding of the concepts and practices of LINQ and recursion in C#. By the end of the book, you will be able to write code using the best approach and will be able to perform unit testing in functional programming, changing how you write your applications and revolutionizing your projects.
Table of Contents (19 chapters)
Functional C#
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Summary


LINQ has made our task of querying a collection easier because we don't need to learn much syntax to access different types of collections. It implements a deferred execution concept, which means that the query will not be executed in the constructor time but in the enumeration process. Almost all query operators provide the deferred execution concept; however, there are exceptions for the operators that do the following:

Return a scalar value or single element, such as Count and First.

Convert the result of query; they are ToList, ToArray, ToDictionary, and ToLookup. They are also called conversion operators.

In other words, methods that return a sequence implement deferred execution for instance, the Select method (IEnumerable<X>-> Select -> IEnumerable<Y>) and methods that return a single object don't implement deferred execution, for instance, the First method (IEnumerable<X>-> First -> Y).

There are two types of LINQ querying syntaxes; they are the...