Did you know ... Search Documentation:
Pack logtalk -- logtalk-3.77.0/docs/_sources/pairs_0.rst.txt

.. index:: pairs .. _pairs/0:

.. rst-class:: right

object

pairs

Useful predicates over lists of pairs (key-value terms).

| Availability: | logtalk_load(types(loader))

| Author: Paulo Moura | Version: 2:1:1 | Date: 2023-11-21

| Compilation flags: | static, context_switching_calls

| Dependencies: | (none)

| Remarks:

  • Usage: This object can be loaded independently of other entities in the types library by using the goal logtalk_load(types(pairs)).

| Inherited public predicates: | (none)

.. contents:: :local: :backlinks: top

Public predicates

.. index:: keys_values/3 .. _pairs/0::keys_values/3:

keys_values/3 ^^^^^^^^^^^^^^^^^

Converts between a list of pairs and lists of keys and values. When converting to pairs, this predicate fails if the list of keys and the list of values have different lengths.

| Compilation flags: | static

| Template: | keys_values(Pairs,Keys,Values) | Mode and number of proofs: | keys_values(+list(pair),-list,-list) - one | keys_values(-list(pair),+list,+list) - zero_or_one


.. index:: keys/2 .. _pairs/0::keys/2:

keys/2 ^^^^^^^^^^

Returns a list of keys from a list of pairs.

| Compilation flags: | static

| Template: | keys(Pairs,Keys) | Mode and number of proofs: | keys(+list(pair),-list) - one


.. index:: key/2 .. _pairs/0::key/2:

key/2 ^^^^^^^^^

Enumerates by backtracking all keys from a list of pairs.

| Compilation flags: | static

| Template: | key(Pairs,Key) | Mode and number of proofs: | key(+list(pair),-term) - zero_or_more


.. index:: values/2 .. _pairs/0::values/2:

values/2 ^^^^^^^^^^^^

Returns a list of values from a list of pairs.

| Compilation flags: | static

| Template: | values(Pairs,Values) | Mode and number of proofs: | values(+list(pair),-list) - one


.. index:: value/3 .. _pairs/0::value/3:

value/3 ^^^^^^^^^^^

Returns a value addressed by the given path (a key or a list of keys in the case of nested list of pairs). Fails if path does not exist.

| Compilation flags: | static

| Template: | value(Pairs,Path,Value) | Mode and number of proofs: | value(+list(pair),+term,-term) - zero_or_one | value(+list(pair),+list,-term) - zero_or_one


.. index:: transpose/2 .. _pairs/0::transpose/2:

transpose/2 ^^^^^^^^^^^^^^^

Transposes a list of pairs by swapping each pair key and value. The relative order of the list elements is kept.

| Compilation flags: | static

| Template: | transpose(Pairs,TransposedPairs) | Mode and number of proofs: | transpose(+list(pair),-list(pair)) - one


.. index:: group_sorted_by_key/2 .. _pairs/0::group_sorted_by_key/2:

group_sorted_by_key/2 ^^^^^^^^^^^^^^^^^^^^^^^^^

Groups pairs by key by sorting them and then constructing new pairs by grouping all values for a given key in a list. Keys are compared using equality. Relative order of values per key is kept. Resulting list of pairs is sorted by key.

| Compilation flags: | static

| Template: | group_sorted_by_key(Pairs,Groups) | Mode and number of proofs: | group_sorted_by_key(+list(pair),-list(pair)) - one


.. index:: group_consecutive_by_key/2 .. _pairs/0::group_consecutive_by_key/2:

group_consecutive_by_key/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Groups pairs by constructing new pairs by grouping all values for consecutive key in a list. Keys are compared using equality. The relative order of the values for the same key is kept.

| Compilation flags: | static

| Template: | group_consecutive_by_key(Pairs,Groups) | Mode and number of proofs: | group_consecutive_by_key(+list(pair),-list(pair)) - one


.. index:: group_by_key/2 .. _pairs/0::group_by_key/2:

group_by_key/2 ^^^^^^^^^^^^^^^^^^

Same as the group_sorted_by_key/2 predicate. Deprecated.

| Compilation flags: | static

| Template: | group_by_key(Pairs,Groups) | Mode and number of proofs: | group_by_key(+list(pair),-list(pair)) - one


.. index:: map/3 .. _pairs/0::map/3:

map/3 ^^^^^^^^^

Maps a list into pairs using a closure that applies to each list element to compute its key.

| Compilation flags: | static

| Template: | map(Closure,List,Pairs) | Meta-predicate template: | map(2,*,*) | Mode and number of proofs: | map(@callable,+list,-list(pair)) - one


Protected predicates

(none)

Private predicates

(none)

Operators

(none)