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)

Suave


While ASP.NET Web API is very convenient, you can see it is mainly designed for an object-oriented programming (OOP) language as we will map our HTTP routes and verb using classes and methods. This makes it a bit more difficult to create reusable components using simple functions as it is common in F#.

Suave (https://suave.io) is a web server that is very popular within the F# community and is specifically designed to take full advantage of the F# features. Suave is a lightweight, non-blocking web server. The non-blocking I/O model is efficient and suitable to build fast and scalable network applications.

The following is a brief list of advantages of using Suave:

  • It is asynchronous by default
  • Its routes are built using composable functions
  • It includes common tools for web development--HTTPS, authentication, keep-alive, and compression
  • It is cross-platform, which means it works on Linux, OS X, and Windows
  • It can be embedded in other applications
  • It can be used from an F# script

Unlike desktop...