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)

Chapter 4. Imperative Programming in F#

In this chapter, you will learn how to use control structures, more idiomatic .NET with F#, interfacing with C#, and generics. The following are the topics that we will cover:

  • Working with classes
  • Control structures
  • Operator overloading
  • Interoperating with C#
  • Extension methods
  • Using LINQ in F#

As a developer, we also need to think of exposing functionalities from F# libraries to be used with C# or other .NET languages. In a team, not every member will be using F# and because of that, we will write wrapper functionalities or expose the F# code in a way that's more consumable in C#. And sometimes, mutable code inside of F# is used for performance-oriented programs; just like we discussed in the previous chapter, in some cases, not all data structures can be used in an immutable way because of memory and performance. And we will resort to using imperative ways to deal with such scenarios.