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

Introduction to laziness


When we talk about being lazy in our daily activity, we might think about something we don't do but we actually have to do. Or, we might put off doing something just because we are lazy. In functional programming, laziness is analogous to our laziness in daily activities. The execution of particular code is deferred due to the concept of laziness thinking. In Chapter 5, Querying Any Collection Easily with LINQ we mentioned that LINQ implemented deferred execution when querying data from a collection.

The query will be executed only when it's enumerated. Now, let's discuss the laziness concept we can use in the functional approach.

Lazy enumeration

In the .NET framework, there are some techniques to enumerate a collection of data, such as array and List<T>. However, implicitly, they are eager evaluations since in an array, we have to define its size first and then fill in the allocated memory before we use it. List<T> has a similar concept compared to array...