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)

ASP.NET Web API 2


In 2013, Microsoft developed a framework within the range of ASP.NET tools to easily create REST APIs. The aim was to minimize the boilerplate needed to create web service controllers. While the design is mainly aimed at an object-oriented language such as C#, its simplicity makes it possible to adapt it to F# without any complication.

In ASP.NET Web API, you can set HTTP routes and verbs automatically by defining a type with the appropriate names and attributes. The use of attributes in .NET is frequent for libraries that use reflection to map .NET types to other data, such as Newtonsoft.Json or sqlite-net, but ASP.NET Web API also makes use of naming conventions to prevent pollution of your code with too many attributes.

This is what a hello world example looks like in ASP.NET Web API 2:

  type HelloController() =
      inherit System.Web.Http.ApiController()
     member x.Get(name: string) = sprintf "Hello %s!" name
   

In a properly set Web API 2 app...