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

.. index:: single: multisets_protocol .. _multisets_protocol/0:

.. rst-class:: right

protocol

multisets_protocol

Protocol for multiset operations over lists.

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

multisets/3 ^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: multiset/3 .. _multisets_protocol/0::multiset/3:

multiset/3 ^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: multisets/4 .. _multisets_protocol/0::multisets/4:

multisets/4 ^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: multiset/4 .. _multisets_protocol/0::multiset/4:

multiset/4 ^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: distinct_multisets/3 .. _multisets_protocol/0::distinct_multisets/3:

distinct_multisets/3 ^^^^^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: distinct_multiset/3 .. _multisets_protocol/0::distinct_multiset/3:

distinct_multiset/3 ^^^^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: distinct_multisets/4 .. _multisets_protocol/0::distinct_multisets/4:

distinct_multisets/4 ^^^^^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: distinct_multiset/4 .. _multisets_protocol/0::distinct_multiset/4:

distinct_multiset/4 ^^^^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: nth_multiset/4 .. _multisets_protocol/0::nth_multiset/4:

nth_multiset/4 ^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: nth_multiset/5 .. _multisets_protocol/0::nth_multiset/5:

nth_multiset/5 ^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: multiset_index/4 .. _multisets_protocol/0::multiset_index/4:

multiset_index/4 ^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: multiset_index/5 .. _multisets_protocol/0::multiset_index/5:

multiset_index/5 ^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: count_multisets/3 .. _multisets_protocol/0::count_multisets/3:

count_multisets/3 ^^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: count_distinct_multisets/3 .. _multisets_protocol/0::count_distinct_multisets/3:

count_distinct_multisets/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: nth_distinct_multiset/4 .. _multisets_protocol/0::nth_distinct_multiset/4:

nth_distinct_multiset/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: distinct_multiset_index/4 .. _multisets_protocol/0::distinct_multiset_index/4:

distinct_multiset_index/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: random_multiset/3 .. _multisets_protocol/0::random_multiset/3:

random_multiset/3 ^^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: sample_multisets/4 .. _multisets_protocol/0::sample_multisets/4:

sample_multisets/4 ^^^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: random_distinct_multiset/3 .. _multisets_protocol/0::random_distinct_multiset/3:

random_distinct_multiset/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: sample_distinct_multisets/4 .. _multisets_protocol/0::sample_distinct_multisets/4:

sample_distinct_multisets/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: next_multiset/3 .. _multisets_protocol/0::next_multiset/3:

next_multiset/3 ^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


.. index:: previous_multiset/3 .. _multisets_protocol/0::previous_multiset/3:

previous_multiset/3 ^^^^^^^^^^^^^^^^^^^^^^^

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

| Compilation flags: | static

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


Protected predicates

(none)

Private predicates

(none)

Operators

(none)