Did you know ... Search Documentation:
Pack logtalk -- logtalk-3.100.1/docs/apis/_sources/arrangements_protocol_0.rst.txt

.. index:: single: arrangements_protocol .. _arrangements_protocol/0:

.. rst-class:: right

protocol

arrangements_protocol

Protocol for arrangements operations over lists.

| Availability: | logtalk_load(arrangements(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:: arrangements/3 .. _arrangements_protocol/0::arrangements/3:

arrangements/3 ^^^^^^^^^^^^^^^^^^

Generates all K-arrangements (ordered K-element selections with replacement) of a list using default order.

| Compilation flags: | static

| Template: | arrangements(K,List,Arrangements) | Mode and number of proofs: | arrangements(+integer,+list,-list) - one


.. index:: arrangement/3 .. _arrangements_protocol/0::arrangement/3:

arrangement/3 ^^^^^^^^^^^^^^^^^

True iff the third argument is a K-arrangement with replacement of a list using default order.

| Compilation flags: | static

| Template: | arrangement(K,List,Arrangement) | Mode and number of proofs: | arrangement(+integer,+list,-list) - one_or_more


.. index:: arrangements/4 .. _arrangements_protocol/0::arrangements/4:

arrangements/4 ^^^^^^^^^^^^^^^^^^

Generates all K-arrangements with the given order: default or lexicographic.

| Compilation flags: | static

| Template: | arrangements(K,List,Order,Arrangements) | Mode and number of proofs: | arrangements(+integer,+list,+atom,-list) - one


.. index:: arrangement/4 .. _arrangements_protocol/0::arrangement/4:

arrangement/4 ^^^^^^^^^^^^^^^^^

True iff the fourth argument is a K-arrangement with replacement with the given order: default or lexicographic.

| Compilation flags: | static

| Template: | arrangement(K,List,Order,Arrangement) | Mode and number of proofs: | arrangement(+integer,+list,+atom,-list) - one_or_more


.. index:: distinct_arrangements/3 .. _arrangements_protocol/0::distinct_arrangements/3:

distinct_arrangements/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^

Generates all distinct K-arrangements (deduplicating repeated values in the input list) using default order.

| Compilation flags: | static

| Template: | distinct_arrangements(K,List,Arrangements) | Mode and number of proofs: | distinct_arrangements(+integer,+list,-list) - one


.. index:: distinct_arrangement/3 .. _arrangements_protocol/0::distinct_arrangement/3:

distinct_arrangement/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^

True iff the third argument is a distinct K-arrangement with replacement of a list using default order.

| Compilation flags: | static

| Template: | distinct_arrangement(K,List,Arrangement) | Mode and number of proofs: | distinct_arrangement(+integer,+list,-list) - one_or_more


.. index:: distinct_arrangements/4 .. _arrangements_protocol/0::distinct_arrangements/4:

distinct_arrangements/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^

Generates all distinct K-arrangements with the given order: default or lexicographic.

| Compilation flags: | static

| Template: | distinct_arrangements(K,List,Order,Arrangements) | Mode and number of proofs: | distinct_arrangements(+integer,+list,+atom,-list) - one


.. index:: distinct_arrangement/4 .. _arrangements_protocol/0::distinct_arrangement/4:

distinct_arrangement/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^

True iff the fourth argument is a distinct K-arrangement with replacement with the given order: default or lexicographic.

| Compilation flags: | static

| Template: | distinct_arrangement(K,List,Order,Arrangement) | Mode and number of proofs: | distinct_arrangement(+integer,+list,+atom,-list) - one_or_more


.. index:: nth_arrangement/4 .. _arrangements_protocol/0::nth_arrangement/4:

nth_arrangement/4 ^^^^^^^^^^^^^^^^^^^^^

Returns the K-arrangement at a given zero-based index using default order.

| Compilation flags: | static

| Template: | nth_arrangement(K,List,Index,Arrangement) | Mode and number of proofs: | nth_arrangement(+integer,+list,+integer,-list) - zero_or_one


.. index:: nth_arrangement/5 .. _arrangements_protocol/0::nth_arrangement/5:

nth_arrangement/5 ^^^^^^^^^^^^^^^^^^^^^

Returns the K-arrangement at a given zero-based index in the given order: default or lexicographic.

| Compilation flags: | static

| Template: | nth_arrangement(K,List,Order,Index,Arrangement) | Mode and number of proofs: | nth_arrangement(+integer,+list,+atom,+integer,-list) - zero_or_one


.. index:: arrangement_index/4 .. _arrangements_protocol/0::arrangement_index/4:

arrangement_index/4 ^^^^^^^^^^^^^^^^^^^^^^^

Returns the zero-based index of a K-arrangement using default order.

| Compilation flags: | static

| Template: | arrangement_index(K,List,Arrangement,Index) | Mode and number of proofs: | arrangement_index(+integer,+list,+list,-integer) - zero_or_one


.. index:: arrangement_index/5 .. _arrangements_protocol/0::arrangement_index/5:

arrangement_index/5 ^^^^^^^^^^^^^^^^^^^^^^^

Returns the zero-based index of a K-arrangement in the given order: default or lexicographic.

| Compilation flags: | static

| Template: | arrangement_index(K,List,Order,Arrangement,Index) | Mode and number of proofs: | arrangement_index(+integer,+list,+atom,+list,-integer) - zero_or_one


.. index:: count_arrangements/3 .. _arrangements_protocol/0::count_arrangements/3:

count_arrangements/3 ^^^^^^^^^^^^^^^^^^^^^^^^

Counts the number of K-arrangements with replacement of a list.

| Compilation flags: | static

| Template: | count_arrangements(K,List,Count) | Mode and number of proofs: | count_arrangements(+integer,+list,-integer) - one


.. index:: count_distinct_arrangements/3 .. _arrangements_protocol/0::count_distinct_arrangements/3:

count_distinct_arrangements/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Counts the number of distinct K-arrangements with replacement of a list (deduplicating repeated values in the input list).

| Compilation flags: | static

| Template: | count_distinct_arrangements(K,List,Count) | Mode and number of proofs: | count_distinct_arrangements(+integer,+list,-integer) - one


.. index:: nth_distinct_arrangement/4 .. _arrangements_protocol/0::nth_distinct_arrangement/4:

nth_distinct_arrangement/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Returns the distinct K-arrangement at a given zero-based index in default generation order.

| Compilation flags: | static

| Template: | nth_distinct_arrangement(K,List,Index,Arrangement) | Mode and number of proofs: | nth_distinct_arrangement(+integer,+list,+integer,-list) - zero_or_one


.. index:: distinct_arrangement_index/4 .. _arrangements_protocol/0::distinct_arrangement_index/4:

distinct_arrangement_index/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Returns the zero-based index of a distinct K-arrangement in default generation order.

| Compilation flags: | static

| Template: | distinct_arrangement_index(K,List,Arrangement,Index) | Mode and number of proofs: | distinct_arrangement_index(+integer,+list,+list,-integer) - zero_or_one


.. index:: random_arrangement/3 .. _arrangements_protocol/0::random_arrangement/3:

random_arrangement/3 ^^^^^^^^^^^^^^^^^^^^^^^^

Returns a random K-arrangement with replacement of a list.

| Compilation flags: | static

| Template: | random_arrangement(K,List,Arrangement) | Mode and number of proofs: | random_arrangement(+integer,+list,-list) - zero_or_one


.. index:: sample_arrangements/4 .. _arrangements_protocol/0::sample_arrangements/4:

sample_arrangements/4 ^^^^^^^^^^^^^^^^^^^^^^^^^

Returns SampleCount random K-arrangements with replacement of a list, sampled with replacement.

| Compilation flags: | static

| Template: | sample_arrangements(K,List,SampleCount,Samples) | Mode and number of proofs: | sample_arrangements(+integer,+list,+integer,-list) - zero_or_one


.. index:: random_distinct_arrangement/3 .. _arrangements_protocol/0::random_distinct_arrangement/3:

random_distinct_arrangement/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Returns a random distinct K-arrangement with replacement of a list (deduplicating repeated values in the input list).

| Compilation flags: | static

| Template: | random_distinct_arrangement(K,List,Arrangement) | Mode and number of proofs: | random_distinct_arrangement(+integer,+list,-list) - zero_or_one


.. index:: sample_distinct_arrangements/4 .. _arrangements_protocol/0::sample_distinct_arrangements/4:

sample_distinct_arrangements/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Returns SampleCount random distinct K-arrangements with replacement of a list, sampled with replacement after deduplicating repeated values in the input list.

| Compilation flags: | static

| Template: | sample_distinct_arrangements(K,List,SampleCount,Samples) | Mode and number of proofs: | sample_distinct_arrangements(+integer,+list,+integer,-list) - zero_or_one


.. index:: next_arrangement/3 .. _arrangements_protocol/0::next_arrangement/3:

next_arrangement/3 ^^^^^^^^^^^^^^^^^^^^^^

Returns the next distinct arrangement value in lexicographic order induced by the first argument.

| Compilation flags: | static

| Template: | next_arrangement(List,Arrangement,Next) | Mode and number of proofs: | next_arrangement(+list,+list,-list) - zero_or_one


.. index:: previous_arrangement/3 .. _arrangements_protocol/0::previous_arrangement/3:

previous_arrangement/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^

Returns the previous distinct arrangement value in lexicographic order induced by the first argument.

| Compilation flags: | static

| Template: | previous_arrangement(List,Arrangement,Previous) | Mode and number of proofs: | previous_arrangement(+list,+list,-list) - zero_or_one


Protected predicates

(none)

Private predicates

(none)

Operators

(none)