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


We discussed that, by being lazy, we can create efficient code. Lazy enumeration is useful when we need to iterate an infinite loop so that it will not overflow since the MoveNext() method in IEnumerator will be run only if asked. Also, lazy evaluation makes our code run faster because the compiler does not need to check all Boolean expressions if one of them has given the result.

In nonstrict evaluation, we treat a function in programming like we treat a mathematical function. Using this evaluation technique, we use the functional approach to solve the function.

We have also become acquainted with the lazy initialization provided by the Lazy<T> class to defer the object's initialization, which means that we can define an object but it won't be initialized if the member of the object has not been accessed yet.

To optimize our code, we discussed caching techniques using precomputation and memoization. In precomputation, we prepare something like a lookup table so we don't need...