Book Image

Mastering F#

By : Alfonso García-Caro Núñez, Suhaib Fahad
Book Image

Mastering F#

By: Alfonso García-Caro Núñez, Suhaib Fahad

Overview of this book

F# is a multi-paradigm programming language that encompasses object-oriented, imperative, and functional programming language properties. Now adopted in a wide range of application areas and is supported both by industry-leading companies who provide professional tools and by an active open community, F# is rapidly gaining popularity as it emerges in digital music advertising, creating music-focused ads for Spotify, Pandora, Shazam, and anywhere on the web. This book will guide you through the basics and will then help you master F#. The book starts by explaining how to use F# with Visual Studio, file ordering, and the differences between F# and C# in terms of usage. It moves on to explain the functional core of F# such as data types, type declarations, immutability, strong type interference, pattern matching, records, F# data structures, sequence expressions, and lazy evaluation. Next, the book takes you through imperative and asynchronous programming, F# type providers, applications, and testing in F#. Finally, we look into using F# with distributed programming and using F# as a suitable language for data science. In short, this book will help you learn F# for real-world applications and increase your productivity with functional programming.
Table of Contents (16 chapters)

Events


Events are basically callbacks from GUI elements that allow us to write custom user actions. When using a GUI library, such as Windows Forms or Windows Presentation Foundation (WPF), events are part of the GUI classes. We can add custom behavior by adding a listener to these events. For example, if we want to handle the click event of a button in a login form, we can write a listener code for the Click event of that Login button.

Events in F# are first-class citizens, which means that they are exposed as a type IEvent<'T> that are composable using the Events module. Let's take a look at declaring events and using them, and then dive into using event processing in GUI programming.

Declaring events

Events are created using the F# Event<'T> class, which is a wrapper implementation around the .NET eventing system. It has the following two functions:

  • Publish: This is used to expose the event
  • Trigger: This triggers or raises the event with the arguments

The following piece of code...