combinat-0.2.8.2: Generate and manipulate various combinatorial objects.

Math.Combinat

Description

A collection of functions to generate, manipulate, visualize and count combinatorial objects like partitions, compositions, permutations, braids, Young tableaux, lattice paths, various tree structures, etc etc.

See also the combinat-diagrams library for generating graphical representations of (some of) these structure using the diagrams library (http://projects.haskell.org/diagrams).

The long-term goals are

1. generate most of the standard structures;
2. manipulate these structures;
3. visualize these structures;
4. the generation should be efficient;
5. to be able to enumerate the structures with constant memory usage;
6. to be able to randomly sample from them;
7. finally, to be a repository of algorithms.

The short-term goal is simply to generate and manipulate many interesting structures.

Naming conventions (subject to change):

• prime suffix: additional constrains, typically more general;
• underscore prefix: use plain lists instead of other types with enforced invariants;
• "random" prefix: generates random objects (typically with uniform distribution);
• "count" prefix: counting functions.

This module re-exports the most commonly used modules.