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.
Getting Started
Feedback
- 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.dllThis assembly provides assorted useful utilities for F# developers:
- 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
FsLex and FsYaccPowerPack includes F# versions of these popular lexer and parser generation tools, along with MSBuild tasks to incorporate them in the build process.
Documentation generatorFsHtmlDoc.exe, included in PowerPack, can be used to generate HTML documentation from the XMLDoc comments in F# source files
F# LINQ and Quotations to Expression Tree BridgeFSharp.PowerPack.Linq.dll connects F# with features introduced in .NET 3.5:
- Provides converters from quotations to .NET expression trees
- Introduces a query operator that allows F# programs to execute queries via LINQ mechanisms
This assembly requires .NET 3.5F# CodeDOM ImplementationFSharp.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