The F# PowerPack
The F# PowerPack is a collection of libraries and tools for use with the F# programming language.
This is functionality which is not yet ready to be added to the core F# release, but nevertheless enables important and valuable development scenarios with F#. The PowerPack include features such as a basic Matrix library and supporting math types, FsLex and FsYacc tools for lexing and parsing, support for using F# with LINQ-based libraries, and a tool for generating HTML documentation from F# libraries, plus much more. This functionality, which has previously been available in the F# CTP releases, is now being made available on CodePlex. The F# PowerPack will continue to evolve seperately from the main F# releases, and the features will continue to be improved and iterated upon.
- For feedback, questions or comments on the F# PowerPack, see the Discussion forums on this site.
- Bug reports can be submitted in the Issue Tracker .
F# PowerPack Features
The PowerPack consists of several assemblies and tools which provide functionality in wide range of areas related to F#.FSharp.PowerPack.dll
This assembly provides assorted useful utilities for F# developers:
FsLex and FsYacc
- Additional immutable datastructures, including HashMultiMap, tagged immutable sets and maps, extension methods giving a functional interface to standard .NET System.Collections.Generic.List<_> and more
- Math data types and operations over them, including Matrix, Vector, Complex and BigRational
- F# definitions for SI units of measure, for use with F# units of measue language construct
- Functions and types for F# Async programming, including asynchronous I/O extensions and several helper classes
PowerPack includes F# versions of these popular lexer and parser generation tools, along with MSBuild tasks to incorporate them in the build process.Documentation generator
FsHtmlDoc.exe, included in PowerPack, can be used to generate HTML documentation from the XMLDoc comments in F# source filesF# LINQ and Quotations to Expression Tree Bridge
FSharp.PowerPack.Linq.dll connects F# with features introduced in .NET 3.5:
This assembly requires .NET 3.5F# CodeDOM Implementation
- Provides converters from quotations to .NET expression trees
- Introduces a query operator that allows F# programs to execute queries via LINQ mechanisms
FSharp.Compiler.CodeDom.dll contains implementations of System.CodeDom.Compiler.CodeDomProvider
for F#. This allows F# to be used with CodeDom consumers, and most importantly to author ASP.NET pages code-behind classes in F#.F# Parallel LINQ IntegrationF# Metadata ReaderF# Compatibility Helpers