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)

Summary


In this chapter, we learned about the Actor Model when simple functions are not enough to express the needs of our domain model in a distributed way, the Erlang-inspired model is a very powerful tool to break our program into decoupled actors, which can asynchronously exchange messages with each other. Though limited, the FSharp.Core library provides MailboxProcessor to implement this model in our programs without any extra dependency. Later we learned about distributed actors with Akka.NET and how Akka takes the Actor Model one step beyond and allows you to communicate and deploy actors remotely. Akka also introduces the concept of supervision, which helps design highly available systems that heal themselves. Also, the Akka.FSharp package provides a specific API for F# making it more pleasant for developers of this language to interact with the library.

Remember also the F# language and ecosystem offer other possibilities for distributed computing, like scripting on the cloud when...