Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Clojure HTML

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
src
.gitignore
README.md
epl.html
pom.xml

README.md

clojure.math.combinatorics

Formerly clojure.contrib.combinatorics.

Efficient, functional algorithms for generating lazy sequences for common combinatorial functions.

Usage

  • (combinations items n) - A lazy sequence of all the unique ways of taking n different elements from items.

    Example: (combinations [1 2 3] 2) -> ((1 2) (1 3) (2 3))

  • (subsets items) - A lazy sequence of all the subsets of items (but generalized to all sequences, not just sets).

    Example: (subsets [1 2 3]) -> (() (1) (2) (3) (1 2) (1 3) (2 3) (1 2 3))

  • (cartesian-product & seqs) - Takes any number of sequences as arguments, and returns a lazy sequence of all the ways to take one item from each seq.

    Example: (cartesian-product [1 2] [3 4]) -> ((1 3) (1 4) (2 3) (2 4))

  • (selections items n) - A lazy sequence of all the ways to take n (possibly the same) items from the sequence of items.

    Example: (selections [1 2] 3) -> ((1 1 1) (1 1 2) (1 2 1) (1 2 2) (2 1 1) (2 1 2) (2 2 1) (2 2 2))

  • (permutations items) - A lazy sequence of all the permutations of items.

    Example: (permutations [1 2 3]) -> ((1 2 3) (1 3 2) (2 1 3) (2 3 1) (3 1 2) (3 2 1))

License

Distributed under the Eclipse Public License, the same as Clojure.

Something went wrong with that request. Please try again.