| 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_protocolProtocol 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
.. 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
(none)
(none)
(none)