| Did you know ... | Search Documentation: |
| Pack logtalk -- logtalk-3.98.0/docs/apis/_sources/combinations_protocol_0.rst.txt |
.. index:: single: combinations_protocol .. _combinations_protocol/0:
.. rst-class:: right
protocol
combinations_protocolProtocol for combinations operations over lists.
| Availability:
| logtalk_load(combinations(loader))
| Author: Paulo Moura | Version: 1:0:0 | Date: 2026-02-26
| Compilation flags:
| static
| Dependencies: | (none)
| Remarks: | (none)
| Inherited public predicates: | (none)
.. contents:: :local: :backlinks: top
.. index:: combinations/3 .. _combinations_protocol/0::combinations/3:
combinations/3 ^^^^^^^^^^^^^^^^^^
Generates all K-element combinations of a list.
| Compilation flags:
| static
| Template:
| combinations(K,List,Combinations)
| Mode and number of proofs:
| combinations(+integer,+list,-list) - one
.. index:: combination/3 .. _combinations_protocol/0::combination/3:
combination/3 ^^^^^^^^^^^^^^^^^
True iff the third argument is a K-element combination of a list.
| Compilation flags:
| static
| Template:
| combination(K,List,Combination)
| Mode and number of proofs:
| combination(+integer,+list,-list) - one_or_more
.. index:: combinations/4 .. _combinations_protocol/0::combinations/4:
combinations/4 ^^^^^^^^^^^^^^^^^^
Generates all K-element combinations with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| combinations(K,List,Order,Combinations)
| Mode and number of proofs:
| combinations(+integer,+list,+atom,-list) - one
.. index:: combination/4 .. _combinations_protocol/0::combination/4:
combination/4 ^^^^^^^^^^^^^^^^^
True iff the fourth argument is a K-element combination with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| combination(K,List,Order,Combination)
| Mode and number of proofs:
| combination(+integer,+list,+atom,-list) - one_or_more
.. index:: combinations_with_replacement/3 .. _combinations_protocol/0::combinations_with_replacement/3:
combinations_with_replacement/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Generates all K-element combinations with replacement.
| Compilation flags:
| static
| Template:
| combinations_with_replacement(K,List,Combinations)
| Mode and number of proofs:
| combinations_with_replacement(+integer,+list,-list) - one
.. index:: combinations_with_replacement/4 .. _combinations_protocol/0::combinations_with_replacement/4:
combinations_with_replacement/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Generates all K-element combinations with replacement with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| combinations_with_replacement(K,List,Order,Combinations)
| Mode and number of proofs:
| combinations_with_replacement(+integer,+list,+atom,-list) - one
.. index:: combination_with_replacement/3 .. _combinations_protocol/0::combination_with_replacement/3:
combination_with_replacement/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
True iff the third argument is a K-element combination with replacement.
| Compilation flags:
| static
| Template:
| combination_with_replacement(K,List,Combination)
| Mode and number of proofs:
| combination_with_replacement(+integer,+list,-list) - one_or_more
.. index:: combination_with_replacement/4 .. _combinations_protocol/0::combination_with_replacement/4:
combination_with_replacement/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
True iff the fourth argument is a K-element combination with replacement with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| combination_with_replacement(K,List,Order,Combination)
| Mode and number of proofs:
| combination_with_replacement(+integer,+list,+atom,-list) - one_or_more
.. index:: distinct_combinations/3 .. _combinations_protocol/0::distinct_combinations/3:
distinct_combinations/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Generates all distinct K-element combinations of a list (deduplicating equal-valued combinations).
| Compilation flags:
| static
| Template:
| distinct_combinations(K,List,Combinations)
| Mode and number of proofs:
| distinct_combinations(+integer,+list,-list) - one
.. index:: distinct_combination/3 .. _combinations_protocol/0::distinct_combination/3:
distinct_combination/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^
True iff the third argument is a distinct K-element combination of a list.
| Compilation flags:
| static
| Template:
| distinct_combination(K,List,Combination)
| Mode and number of proofs:
| distinct_combination(+integer,+list,-list) - one_or_more
.. index:: distinct_combinations/4 .. _combinations_protocol/0::distinct_combinations/4:
distinct_combinations/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Generates all distinct K-element combinations with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| distinct_combinations(K,List,Order,Combinations)
| Mode and number of proofs:
| distinct_combinations(+integer,+list,+atom,-list) - one
.. index:: distinct_combination/4 .. _combinations_protocol/0::distinct_combination/4:
distinct_combination/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^
True iff the fourth argument is a distinct K-element combination with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| distinct_combination(K,List,Order,Combination)
| Mode and number of proofs:
| distinct_combination(+integer,+list,+atom,-list) - one_or_more
.. index:: nth_combination/4 .. _combinations_protocol/0::nth_combination/4:
nth_combination/4 ^^^^^^^^^^^^^^^^^^^^^
Returns the combination at a given zero-based index.
| Compilation flags:
| static
| Template:
| nth_combination(K,List,Index,Combination)
| Mode and number of proofs:
| nth_combination(+integer,+list,+integer,-list) - zero_or_one
.. index:: combination_index/4 .. _combinations_protocol/0::combination_index/4:
combination_index/4 ^^^^^^^^^^^^^^^^^^^^^^^
Returns the zero-based index of a combination.
| Compilation flags:
| static
| Template:
| combination_index(K,List,Combination,Index)
| Mode and number of proofs:
| combination_index(+integer,+list,+list,-integer) - zero_or_one
.. index:: count_combinations/3 .. _combinations_protocol/0::count_combinations/3:
count_combinations/3 ^^^^^^^^^^^^^^^^^^^^^^^^
Counts the number of K-element combinations of a list.
| Compilation flags:
| static
| Template:
| count_combinations(K,List,Count)
| Mode and number of proofs:
| count_combinations(+integer,+list,-integer) - one
.. index:: count_combinations_with_replacement/3 .. _combinations_protocol/0::count_combinations_with_replacement/3:
count_combinations_with_replacement/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Counts the number of K-element combinations with replacement of a list.
| Compilation flags:
| static
| Template:
| count_combinations_with_replacement(K,List,Count)
| Mode and number of proofs:
| count_combinations_with_replacement(+integer,+list,-integer) - one
.. index:: random_combination/3 .. _combinations_protocol/0::random_combination/3:
random_combination/3 ^^^^^^^^^^^^^^^^^^^^^^^^
Returns a random K-element combination of a list.
| Compilation flags:
| static
| Template:
| random_combination(K,List,Combination)
| Mode and number of proofs:
| random_combination(+integer,+list,-list) - zero_or_one
(none)
(none)
(none)