== combinatorics
Combinatorics toc: === Abstract provides some mechanisms for iterating over, reducing and mapping permutations (ordered subsets) and combinations (unordered subsets) of lists.
supports partial, i.e. k-permutations and partial, i.e. k-combinations.
=== Documentation
<procedure>(ordered-subset-for-each f list) → unspecified</procedure> <procedure>(ordered-subset-for-each f list k) → unspecified</procedure> Iterate over every k-permutation (partial ordered subset) of , calling for its side effect.
- f : The function to call
- list : The list to permute
- k : k distinct elements (default: n)
<procedure>(ordered-subset-fold cons nil list) → object</procedure> <procedure>(ordered-subset-fold cons nil list k) → object</procedure> Recombine every k-permutation (partial ordered subset) of , starting with a base-case , and calling with 1. a permutation and 2. the accumulated value.
- cons : The combining function
- nil : The base case
- list : The list to recombine
- k : k distinct elements (default: n)
<procedure>(ordered-subset-map f list) → list</procedure> <procedure>(ordered-subset-map f list k) → list</procedure> Map every k-permutation (partial ordered subset) of using .
- f : The mapping function
- list : The list to map
- k : k distinct elements (default: n)
<procedure>(unordered-subset-for-each f list) → unspecified</procedure> <procedure>(unordered-subset-for-each f list k) → unspecified</procedure> Iterate over every k-combination (partial unordered subset) of , calling for its side effect.
- f : The function to call
- list : The list to permute
- k : k distinct elements (default: n)
<procedure>(unordered-subset-fold cons nil list) → object</procedure> <procedure>(unordered-subset-fold cons nil list k) → object</procedure> Recombine every k-combination (partial unordered subset) of , starting with a base-case , and calling with 1. a combination and 2. the accumulated value.
- cons : The combining function
- nil : The base case
- list : The list to recombine
- k : k distinct elements (default: n)
<procedure>(unordered-subset-map f list) → list</procedure> <procedure>(unordered-subset-map f list k) → list</procedure> Map every k-combination (partial unordered subset) of using .
- f : The mapping function
- list : The list to map
- k : k distinct elements (default: n)
==== Author
Peter Danenberg ==== Repository https://github.com/klutometis/combinatorics ==== License BSD ==== Dependencies
==== Versions- 0.1 : Start with ordered-subset operations.
- 0.2 : Add unordered subset operations.
- 0.3 : Add documentation.
- 0.3.1 : Add some tests.
- 0.3.2 : Tests depend on `test'.
- 0.3.3 : Actually map the values.
Documented by cock.