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 7. Web Programming in F#

The modern web has three main requirements: it must be responsive, scalable, and deal with tons of data. Features such as asynchronous workflows, composability, or data tools make F# a perfect fit for web programming. In this chapter, we will review the most common tools used for web development with F# and see the benefits they bring to the table to decide which one is the most appropriate for our use case.

You will learn how to build web servers using some of the most common .NET libraries for this purpose, which are as follows:

  • ASP.NET Web API: Thanks to its convention-based HTTP route bindings, it is very easy to build web services in F# using ASP.NET Web API, also remaining in the comfort of Microsoft tooling for web development.
  • Suave: This is a web server specifically designed to take full advantage of F# and functional programming characteristics. Instead of controllers, as with ASP.NET, Suave defines routes using function composition, which gives you...