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


Although C# has a feature to iterate a sequence using the for or while loop, it's better for us to approach functional programming using recursion to iterate the sequence. We already discussed how the recursion routine works and refactored the iteration into recursion. We know that in the recursion, we have a base case that will define the end of the recursion chain.

In the traditional recursion model, the recursive call performs first then returns the value and then calculates the result. The result won't be displayed until the recursive call is finished. Whereas, the tail recursion doesn't do anything after recursion at all. There are two styles in tail recursion; they are APS and CPS.

Besides direct recursion, we also discussed indirect recursion. Indirect recursion involves at least two functions. Then, we applied recursion into the functional approach using the Aggregrate LINQ operator. We also delved into the Aggregate operator and discussed how it works.

In the next chapter,...