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


In this chapter, we discovered that an anonymous method is a method that doesn't have a name. We just need to define the arguments and the implementation of the method. It's a shorthand notation from delegates. Then, we looked at lambda expressions, the powerful tool in functional programming, which can provide a shorthand notation from an anonymous method.

The lambda expression can also be used to form an expression tree that will be useful when we need to express our code in regular C#, deconstruct it, inspect it, and interpret it. The expression tree is like an explanation of the code. If we have a <Func<int, int, int>> expression, it explains how it will provide an int return if we give the code two integers.

Subscribing an event is also done by a lambda expression. There are two kinds of classes in the event, they are publisher and subscribers, and we can subscribe to the event using a lambda expression. It doesn't matter whether we use the event keyword or the EventHandler...