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)

Fable


While WebSharper is a great way to use F# when building web apps both in the backend and frontend, sometimes we may need more flexibility when interacting with JavaScript. Fable is a lightweight F# to JavaScript compiler that does not provide any specific tool to build web apps. However, it allows you to interact with any modern JavaScript development tool and library, not only for the browser, but also for server apps with Node.js, desktop with GitHub Electron, or mobile with React Native or Fuse.

The experience of developing with Fable is a bit different from what we have seen so far, as one of its main guidelines is to stay as close as possible to the JavaScript ecosystem, not only during runtime but also while developing. For example, Fable itself is not distributed through NuGet, the usual repository for .NET libraries, but Node Package Manager (npm), a popular register and package manager forNode.js Node.js libraries and other JavaScript tools.

Let's see how we can create a hello...