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)

Akka.NET


The Akka.NET library is a port of the popular Akka framework for the JVM to the .NET platform. One of the key differences, with a more simpler implementation of the Actor Model such as MailboxProcessor, is that Akka.NET is distributed by default-the location of the actor remains transparent to the developer. This means that message passing will work the same locally (on the same machine) as remotely (between different machines). This makes it much easier to scale our applications without having to worry about a very complicated distribution model from the very beginning.

Another very important feature introduced by Akka is the concept of supervision-actors must be arranged in a hierarchy, with each actor being responsible for dealing with the failures causing its children actors to crash, and stopping or restarting them accordingly. This architecture helps us design highly fault-tolerant systems that can self-heal.

Let's see how we can implement the aforementioned sample using Akka...