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

Developing functional programming in Windows forms


Now, we are going to develop a calculator application in a Windows forms application. For this purpose, we have to create a new Windows forms project and a new form with several buttons to contain the numbers 0 to 9 and additional functionality, such as the following screenshot:

As you can see, we have 10 buttons that represent the numbers 0 to 9 and standard mathematical operators such as add (+), subtract (-), multiply (*), and divide (/). We also have some additional function buttons; they are square root (sqrt), percent (%) and inverse (1/x). The rest includes these buttons: switch sign (+/-), decimal (.), Clear Entry (CE), Clear All (C), and Backspace (del). We also have a textbox to display the number we entered and set at the top of the form. Last but not least, there is always an equal button in all calculator applications. We give names to all these controls, as shown in the following code snippet:

namespace CalculatorImperative...