cartesian_products

This library provides predicates for generating and querying Cartesian products over lists. The following categories of predicates are provided:

  • Generation operations - Predicates for generating Cartesian products and tuples.

  • Ordering variants - Predicates that support an additional order argument (default or lexicographic) for controlling output order.

  • Distinct-value generation - Predicates for generating tuples while deduplicating repeated values in factor lists.

  • Indexed access - Predicates for direct access to tuples at specific positions.

  • Lexicographic stepping - Predicates for navigating tuples in lexicographic order.

  • Counting operations - Predicates for counting tuples without generating them.

  • Random selection - Predicates for randomly selecting and sampling tuples.

Dedicated arrangements, permutations, combinations, multisets, derangements, partitions, and subsequences libraries are also available for focused APIs on related operations.

API documentation

Open the ../../apis/library_index.html#cartesian_products link in a web browser.

Loading

To load all entities in this library, load the loader.lgt file:

| ?- logtalk_load(cartesian_products(loader)).

Testing

To test this library predicates, load the tester.lgt file:

| ?- logtalk_load(cartesian_products(tester)).