| Did you know ... | Search Documentation: |
| Pack logtalk -- logtalk-3.100.1/docs/apis/_sources/derangements_protocol_0.rst.txt |
.. index:: single: derangements_protocol .. _derangements_protocol/0:
.. rst-class:: right
protocol
derangements_protocolProtocol for derangement operations over lists.
| Availability:
| logtalk_load(derangements(loader))
| Author: Paulo Moura | Version: 1:0:0 | Date: 2026-05-12
| Compilation flags:
| static
| Dependencies: | (none)
| Remarks: | (none)
| Inherited public predicates: | (none)
.. contents:: :local: :backlinks: top
.. index:: derangements/2 .. _derangements_protocol/0::derangements/2:
derangements/2 ^^^^^^^^^^^^^^^^^^
Generates all derangements of a list using default order.
| Compilation flags:
| static
| Template:
| derangements(List,Derangements)
| Mode and number of proofs:
| derangements(+list,-list) - one
.. index:: derangement/2 .. _derangements_protocol/0::derangement/2:
derangement/2 ^^^^^^^^^^^^^^^^^
True iff the second argument is a derangement of the first argument using default order.
| Compilation flags:
| static
| Template:
| derangement(List,Derangement)
| Mode and number of proofs:
| derangement(+list,-list) - zero_or_more
.. index:: derangements/3 .. _derangements_protocol/0::derangements/3:
derangements/3 ^^^^^^^^^^^^^^^^^^
Generates all derangements with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| derangements(List,Order,Derangements)
| Mode and number of proofs:
| derangements(+list,+atom,-list) - one
.. index:: derangement/3 .. _derangements_protocol/0::derangement/3:
derangement/3 ^^^^^^^^^^^^^^^^^
True iff the third argument is a derangement with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| derangement(List,Order,Derangement)
| Mode and number of proofs:
| derangement(+list,+atom,-list) - zero_or_more
.. index:: distinct_derangements/2 .. _derangements_protocol/0::distinct_derangements/2:
distinct_derangements/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Generates all distinct derangements of a list using default order.
| Compilation flags:
| static
| Template:
| distinct_derangements(List,Derangements)
| Mode and number of proofs:
| distinct_derangements(+list,-list) - one
.. index:: distinct_derangement/2 .. _derangements_protocol/0::distinct_derangement/2:
distinct_derangement/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^
True iff the second argument is a distinct derangement of the first argument using default order.
| Compilation flags:
| static
| Template:
| distinct_derangement(List,Derangement)
| Mode and number of proofs:
| distinct_derangement(+list,-list) - zero_or_more
.. index:: distinct_derangements/3 .. _derangements_protocol/0::distinct_derangements/3:
distinct_derangements/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Generates all distinct derangements with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| distinct_derangements(List,Order,Derangements)
| Mode and number of proofs:
| distinct_derangements(+list,+atom,-list) - one
.. index:: distinct_derangement/3 .. _derangements_protocol/0::distinct_derangement/3:
distinct_derangement/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^
True iff the third argument is a distinct derangement with the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| distinct_derangement(List,Order,Derangement)
| Mode and number of proofs:
| distinct_derangement(+list,+atom,-list) - zero_or_more
.. index:: nth_derangement/3 .. _derangements_protocol/0::nth_derangement/3:
nth_derangement/3 ^^^^^^^^^^^^^^^^^^^^^
Returns the derangement at a given zero-based index using default order.
| Compilation flags:
| static
| Template:
| nth_derangement(List,Index,Derangement)
| Mode and number of proofs:
| nth_derangement(+list,+integer,-list) - zero_or_one
.. index:: nth_derangement/4 .. _derangements_protocol/0::nth_derangement/4:
nth_derangement/4 ^^^^^^^^^^^^^^^^^^^^^
Returns the derangement at a given zero-based index in the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| nth_derangement(List,Order,Index,Derangement)
| Mode and number of proofs:
| nth_derangement(+list,+atom,+integer,-list) - zero_or_one
.. index:: derangement_index/3 .. _derangements_protocol/0::derangement_index/3:
derangement_index/3 ^^^^^^^^^^^^^^^^^^^^^^^
Returns the zero-based index of a derangement using default order.
| Compilation flags:
| static
| Template:
| derangement_index(List,Derangement,Index)
| Mode and number of proofs:
| derangement_index(+list,+list,-integer) - zero_or_one
.. index:: derangement_index/4 .. _derangements_protocol/0::derangement_index/4:
derangement_index/4 ^^^^^^^^^^^^^^^^^^^^^^^
Returns the zero-based index of a derangement in the given order: default, lexicographic, or shortlex.
| Compilation flags:
| static
| Template:
| derangement_index(List,Order,Derangement,Index)
| Mode and number of proofs:
| derangement_index(+list,+atom,+list,-integer) - zero_or_one
.. index:: count_derangements/2 .. _derangements_protocol/0::count_derangements/2:
count_derangements/2 ^^^^^^^^^^^^^^^^^^^^^^^^
Counts the number of derangements of a list.
| Compilation flags:
| static
| Template:
| count_derangements(List,Count)
| Mode and number of proofs:
| count_derangements(+list,-integer) - one
.. index:: count_partial_derangements/3 .. _derangements_protocol/0::count_partial_derangements/3:
count_partial_derangements/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Counts the number of permutations of a list with exactly the given number of fixed points.
| Compilation flags:
| static
| Template:
| count_partial_derangements(FixedPoints,List,Count)
| Mode and number of proofs:
| count_partial_derangements(+integer,+list,-integer) - one
.. index:: count_distinct_derangements/2 .. _derangements_protocol/0::count_distinct_derangements/2:
count_distinct_derangements/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Counts the number of distinct derangements of a list (deduplicating equal-valued derangements).
| Compilation flags:
| static
| Template:
| count_distinct_derangements(List,Count)
| Mode and number of proofs:
| count_distinct_derangements(+list,-integer) - one
.. index:: nth_distinct_derangement/3 .. _derangements_protocol/0::nth_distinct_derangement/3:
nth_distinct_derangement/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the distinct derangement at a given zero-based index in default generation order.
| Compilation flags:
| static
| Template:
| nth_distinct_derangement(List,Index,Derangement)
| Mode and number of proofs:
| nth_distinct_derangement(+list,+integer,-list) - zero_or_one
.. index:: distinct_derangement_index/3 .. _derangements_protocol/0::distinct_derangement_index/3:
distinct_derangement_index/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the zero-based index of a distinct derangement in default generation order.
| Compilation flags:
| static
| Template:
| distinct_derangement_index(List,Derangement,Index)
| Mode and number of proofs:
| distinct_derangement_index(+list,+list,-integer) - zero_or_one
.. index:: random_derangement/2 .. _derangements_protocol/0::random_derangement/2:
random_derangement/2 ^^^^^^^^^^^^^^^^^^^^^^^^
Returns a random derangement of a list.
| Compilation flags:
| static
| Template:
| random_derangement(List,Derangement)
| Mode and number of proofs:
| random_derangement(+list,-list) - zero_or_one
.. index:: sample_derangements/3 .. _derangements_protocol/0::sample_derangements/3:
sample_derangements/3 ^^^^^^^^^^^^^^^^^^^^^^^^^
Returns SampleCount random derangements of a list, sampled with replacement.
| Compilation flags:
| static
| Template:
| sample_derangements(List,SampleCount,Samples)
| Mode and number of proofs:
| sample_derangements(+list,+integer,-list) - zero_or_one
.. index:: random_distinct_derangement/2 .. _derangements_protocol/0::random_distinct_derangement/2:
random_distinct_derangement/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns a random distinct derangement of a list (deduplicating equal-valued derangements).
| Compilation flags:
| static
| Template:
| random_distinct_derangement(List,Derangement)
| Mode and number of proofs:
| random_distinct_derangement(+list,-list) - zero_or_one
.. index:: sample_distinct_derangements/3 .. _derangements_protocol/0::sample_distinct_derangements/3:
sample_distinct_derangements/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns SampleCount random distinct derangements of a list, sampled with replacement after deduplicating equal-valued derangements.
| Compilation flags:
| static
| Template:
| sample_distinct_derangements(List,SampleCount,Samples)
| Mode and number of proofs:
| sample_distinct_derangements(+list,+integer,-list) - zero_or_one
.. index:: next_derangement/3 .. _derangements_protocol/0::next_derangement/3:
next_derangement/3 ^^^^^^^^^^^^^^^^^^^^^^
Returns the next distinct derangement value in lexicographic order induced by the first argument.
| Compilation flags:
| static
| Template:
| next_derangement(List,Derangement,Next)
| Mode and number of proofs:
| next_derangement(+list,+list,-list) - zero_or_one
.. index:: previous_derangement/3 .. _derangements_protocol/0::previous_derangement/3:
previous_derangement/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the previous distinct derangement value in lexicographic order induced by the first argument.
| Compilation flags:
| static
| Template:
| previous_derangement(List,Derangement,Previous)
| Mode and number of proofs:
| previous_derangement(+list,+list,-list) - zero_or_one
(none)
(none)
(none)