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_protocol

Protocol 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

Public predicates

.. 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


Protected predicates

(none)

Private predicates

(none)

Operators

(none)