Cover by Chris Smith

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

O'Reilly logo

The F# Libraries

Like most modern languages, F# comes with its own standard library. The F# library, however, comes in two parts:

FSharp.Core.dll

FSharp.Core.dll is implicitly referenced by every single F# application and is the F# library. It contains the definitions for common types such as list, Async, option, and so on.

The F# PowerPack

The F# PowerPack is a set of experimental extensions and additional functionality meant to augment the F# library: for example, modules enabling F# applications to be source-level-compatible with the OCaml programming language.

FSharp.Core.dll

Learning more about FSharp.Core.dll will enable you to get the most out of your F# projects. We’ve covered a lot of functionality in the F# library throughout the book so far, but there are several gems tucked away under the Microsoft.FSharp namespace, the most useful of which are a couple of purely functional (immutable) data structures.

Chapter 4 introduced mutable collection types as an easier-to-use alternative to list and seq. However, if you want to strive for pure functional programming, you can use functional collection types instead.

The Set<_> and Map<_,_> types behave much like the HashSet<_> and Dictionary<_,_> types from Chapter 4, except that you cannot modify any instance. So when you add a new element to the collection by using the Add method, rather than returning unit and updating the internal data structure, a new instance of the Set<_> or Map<_,_> is returned instead.

Example A-13 uses the

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required