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

Chapter 10. Taking an Action in C# Functional Programming

This is the most important chapter of this book since we will create a new application using a functional approach. We have already discussed functional programming in depth in the previous chapters, including functional programming concepts, Language Integrated Query (LINQ), recursion, optimizing, and patterns. What we are going to do now is develop an application with an imperative approach and then refactor it into a functional approach.

In this chapter, we will create a Windows forms application and explore how to create a form and then add the code to it. After finishing this chapter, we will be able to refactor the Windows form application from an imperative approach into a functional approach.

In this chapter, we will cover the following topics:

  • Creating a Windows forms application

  • Exploring how to create a form and then add the code to it

  • Creating engine code in an imperative approach

  • Transform the engine code from an imperative...