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)

Control structures


Control structures refer to the decisions made that affect the order of execution of the code. Although F# is an expression-based language, it also provides control flow constructs common of statement-based languages, such as looping, that allows us to write code with side-effects. We will be discussing this, as well as how to express conditions, in the following sections.

Looping

There are two types of loops: the for loop and the while loop. The For loops have the following two types of expression:

  • for...to: This iterates over a range of values
  • for...in: This is more like the foreach loop in other .NET languages as it loops over an enumerable collection

The for...to expression

The for...to expression loops/iterates over a range of values. The range can be forward/reverse or generated via a function. The return of this expression is unit type.

The forward expression works by incrementing the following values in the loop:

// A simple for...to loop.  
let function1() = 
   for...