| Did you know ... | Search Documentation: |
| Pack logtalk -- logtalk-3.100.1/docs/apis/_sources/permutations_protocol_0.rst.txt |
.. index:: single: permutations_protocol .. _permutations_protocol/0:
.. rst-class:: right
protocol
permutations_protocolProtocol for permutations operations over lists.
| Availability:
| logtalk_load(permutations(loader))
| Author: Paulo Moura | Version: 2:0:0 | Date: 2026-05-12
| Compilation flags:
| static
| Dependencies: | (none)
| Remarks: | (none)
| Inherited public predicates: | (none)
.. contents:: :local: :backlinks: top
.. index:: permutations/2 .. _permutations_protocol/0::permutations/2:
permutations/2 ^^^^^^^^^^^^^^^^^^
Generates all permutations of a list using default order.
| Compilation flags:
| static
| Template:
| permutations(List,Permutations)
| Mode and number of proofs:
| permutations(+list,-list) - one
.. index:: permutation/2 .. _permutations_protocol/0::permutation/2:
permutation/2 ^^^^^^^^^^^^^^^^^
True iff the second argument is a permutation of the first argument using default order.
| Compilation flags:
| static
| Template:
| permutation(List,Permutation)
| Mode and number of proofs:
| permutation(+list,-list) - one_or_more
.. index:: permutations/3 .. _permutations_protocol/0::permutations/3:
permutations/3 ^^^^^^^^^^^^^^^^^^
Generates all permutations with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| permutations(List,Order,Permutations)
| Mode and number of proofs:
| permutations(+list,+atom,-list) - one
.. index:: permutation/3 .. _permutations_protocol/0::permutation/3:
permutation/3 ^^^^^^^^^^^^^^^^^
True iff the third argument is a permutation with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| permutation(List,Order,Permutation)
| Mode and number of proofs:
| permutation(+list,+atom,-list) - one_or_more
.. index:: distinct_permutations/2 .. _permutations_protocol/0::distinct_permutations/2:
distinct_permutations/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Generates all distinct permutations of a list (deduplicating repeated values in the input list) using default order.
| Compilation flags:
| static
| Template:
| distinct_permutations(List,Permutations)
| Mode and number of proofs:
| distinct_permutations(+list,-list) - one
.. index:: distinct_permutation/2 .. _permutations_protocol/0::distinct_permutation/2:
distinct_permutation/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^
True iff the second argument is a distinct permutation of the first argument using default order.
| Compilation flags:
| static
| Template:
| distinct_permutation(List,Permutation)
| Mode and number of proofs:
| distinct_permutation(+list,-list) - one_or_more
.. index:: distinct_permutations/3 .. _permutations_protocol/0::distinct_permutations/3:
distinct_permutations/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Generates all distinct permutations with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| distinct_permutations(List,Order,Permutations)
| Mode and number of proofs:
| distinct_permutations(+list,+atom,-list) - one
.. index:: distinct_permutation/3 .. _permutations_protocol/0::distinct_permutation/3:
distinct_permutation/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^
True iff the third argument is a distinct permutation with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| distinct_permutation(List,Order,Permutation)
| Mode and number of proofs:
| distinct_permutation(+list,+atom,-list) - one_or_more
.. index:: k_permutations/3 .. _permutations_protocol/0::k_permutations/3:
k_permutations/3 ^^^^^^^^^^^^^^^^^^^^
Generates all K-permutations (ordered selections) of a list using default order.
| Compilation flags:
| static
| Template:
| k_permutations(K,List,Permutations)
| Mode and number of proofs:
| k_permutations(+integer,+list,-list) - one
.. index:: k_permutation/3 .. _permutations_protocol/0::k_permutation/3:
k_permutation/3 ^^^^^^^^^^^^^^^^^^^
True iff the third argument is a K-permutation (ordered selection) of a list using default order.
| Compilation flags:
| static
| Template:
| k_permutation(K,List,Permutation)
| Mode and number of proofs:
| k_permutation(+integer,+list,-list) - one_or_more
.. index:: k_permutations/4 .. _permutations_protocol/0::k_permutations/4:
k_permutations/4 ^^^^^^^^^^^^^^^^^^^^
Generates all K-permutations with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| k_permutations(K,List,Order,Permutations)
| Mode and number of proofs:
| k_permutations(+integer,+list,+atom,-list) - one
.. index:: k_permutation/4 .. _permutations_protocol/0::k_permutation/4:
k_permutation/4 ^^^^^^^^^^^^^^^^^^^
True iff the fourth argument is a K-permutation with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| k_permutation(K,List,Order,Permutation)
| Mode and number of proofs:
| k_permutation(+integer,+list,+atom,-list) - one_or_more
.. index:: next_permutation/2 .. _permutations_protocol/0::next_permutation/2:
next_permutation/2 ^^^^^^^^^^^^^^^^^^^^^^
Returns the next permutation value in lexicographic order.
| Compilation flags:
| static
| Template:
| next_permutation(Permutation,Next)
| Mode and number of proofs:
| next_permutation(+list,-list) - zero_or_one
.. index:: previous_permutation/2 .. _permutations_protocol/0::previous_permutation/2:
previous_permutation/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the previous permutation value in lexicographic order.
| Compilation flags:
| static
| Template:
| previous_permutation(Permutation,Previous)
| Mode and number of proofs:
| previous_permutation(+list,-list) - zero_or_one
.. index:: nth_permutation/3 .. _permutations_protocol/0::nth_permutation/3:
nth_permutation/3 ^^^^^^^^^^^^^^^^^^^^^
Returns the permutation at a given zero-based index using default order.
| Compilation flags:
| static
| Template:
| nth_permutation(List,Index,Permutation)
| Mode and number of proofs:
| nth_permutation(+list,+integer,-list) - zero_or_one
.. index:: nth_permutation/4 .. _permutations_protocol/0::nth_permutation/4:
nth_permutation/4 ^^^^^^^^^^^^^^^^^^^^^
Returns the permutation at a given zero-based index in the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| nth_permutation(List,Order,Index,Permutation)
| Mode and number of proofs:
| nth_permutation(+list,+atom,+integer,-list) - zero_or_one
.. index:: permutation_index/3 .. _permutations_protocol/0::permutation_index/3:
permutation_index/3 ^^^^^^^^^^^^^^^^^^^^^^^
Returns the zero-based index of a permutation using default order.
| Compilation flags:
| static
| Template:
| permutation_index(List,Permutation,Index)
| Mode and number of proofs:
| permutation_index(+list,+list,-integer) - zero_or_one
.. index:: permutation_index/4 .. _permutations_protocol/0::permutation_index/4:
permutation_index/4 ^^^^^^^^^^^^^^^^^^^^^^^
Returns the zero-based index of a permutation in the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| permutation_index(List,Order,Permutation,Index)
| Mode and number of proofs:
| permutation_index(+list,+atom,+list,-integer) - zero_or_one
.. index:: count_permutations/2 .. _permutations_protocol/0::count_permutations/2:
count_permutations/2 ^^^^^^^^^^^^^^^^^^^^^^^^
Counts the number of permutations of a list.
| Compilation flags:
| static
| Template:
| count_permutations(List,Count)
| Mode and number of proofs:
| count_permutations(+list,-integer) - one
.. index:: count_distinct_permutations/2 .. _permutations_protocol/0::count_distinct_permutations/2:
count_distinct_permutations/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Counts the number of distinct permutations of a list (deduplicating equal-valued permutations).
| Compilation flags:
| static
| Template:
| count_distinct_permutations(List,Count)
| Mode and number of proofs:
| count_distinct_permutations(+list,-integer) - one
.. index:: nth_distinct_permutation/3 .. _permutations_protocol/0::nth_distinct_permutation/3:
nth_distinct_permutation/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the distinct permutation at a given zero-based index in default generation order.
| Compilation flags:
| static
| Template:
| nth_distinct_permutation(List,Index,Permutation)
| Mode and number of proofs:
| nth_distinct_permutation(+list,+integer,-list) - zero_or_one
.. index:: distinct_permutation_index/3 .. _permutations_protocol/0::distinct_permutation_index/3:
distinct_permutation_index/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the zero-based index of a distinct permutation in default generation order.
| Compilation flags:
| static
| Template:
| distinct_permutation_index(List,Permutation,Index)
| Mode and number of proofs:
| distinct_permutation_index(+list,+list,-integer) - zero_or_one
.. index:: random_permutation/2 .. _permutations_protocol/0::random_permutation/2:
random_permutation/2 ^^^^^^^^^^^^^^^^^^^^^^^^
Returns a random permutation of a list.
| Compilation flags:
| static
| Template:
| random_permutation(List,Permutation)
| Mode and number of proofs:
| random_permutation(+list,-list) - one
.. index:: sample_permutations/3 .. _permutations_protocol/0::sample_permutations/3:
sample_permutations/3 ^^^^^^^^^^^^^^^^^^^^^^^^^
Returns SampleCount random permutations of a list, sampled with replacement.
| Compilation flags:
| static
| Template:
| sample_permutations(List,SampleCount,Samples)
| Mode and number of proofs:
| sample_permutations(+list,+integer,-list) - zero_or_one
.. index:: random_distinct_permutation/2 .. _permutations_protocol/0::random_distinct_permutation/2:
random_distinct_permutation/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns a random distinct permutation of a list (deduplicating equal-valued permutations).
| Compilation flags:
| static
| Template:
| random_distinct_permutation(List,Permutation)
| Mode and number of proofs:
| random_distinct_permutation(+list,-list) - one
.. index:: sample_distinct_permutations/3 .. _permutations_protocol/0::sample_distinct_permutations/3:
sample_distinct_permutations/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns SampleCount random distinct permutations of a list, sampled with replacement after deduplicating equal-valued permutations.
| Compilation flags:
| static
| Template:
| sample_distinct_permutations(List,SampleCount,Samples)
| Mode and number of proofs:
| sample_distinct_permutations(+list,+integer,-list) - zero_or_one
(none)
(none)
(none)