+
Point of view
All features
deferred class DICTIONARY [V_, K_]
Summary
Associative memory. Values of type V_ are stored using Keys of type K_. To make a comparison with the well known ARRAY class, with a DICTIONARY, index used are not only INTEGER, you can use for example a STRING to access to your information.
Well known implementations, see HASHED_DICTIONARY, AVL_DICTIONARY and ARRAY_DICTIONARY.
Direct parents
Inherit list: MAP
Known children
Inherit list: ARRAY_DICTIONARY, SIMPLE_DICTIONARY
Overview
Features
{ANY}
• put (v: V_, k: K_) assign at
Change some existing entry or add the new one.
• fast_put (v: V_, k: K_) assign fast_at
Same job as put, but uses basic = for comparison.
• add (v: V_, k: K_)
To add a new entry k with its associated value v.
• set_item (v: V_, index: INTEGER_32)
Removing:
{ANY}
{ANY}
{}
• make
Creates an empty dictionary.
Implement manifest generic creation:
{}
{}
Counting:
{ANY}
Basic access:
{ANY}
• has (k: K_): BOOLEAN
Is there a value currently associated with key k?
• at (k: K_): V_
Return the value associated to key k.
• infix "@" (k: K_): V_
The infix notation which is actually a synonym for at.
• reference_at (k: K_): V_
Return Void or the value associated with key k.
• fast_has (k: K_): BOOLEAN
Is there a value currently associated with key k?
• fast_at (k: K_): V_
Return the value associated to key k using basic = for comparison.
• fast_reference_at (k: K_): V_
Same work as reference_at, but basic = is used for comparison.
Looking and searching some value:
{ANY}
To provide iterating facilities:
{ANY}
{ANY}
• fast_is_equal (other: DICTIONARY [V_, K_]): BOOLEAN
Do both dictionaries have the same set of associations?
• is_equal (other: DICTIONARY [V_, K_]): BOOLEAN
Do both dictionaries have the same set of associations?
• is_equal_map (other: DICTIONARY [V_, K_]): BOOLEAN
Do both collections have the same lower, upper, and items?
Display support:
{ANY}
Agents based features:
{ANY}
Other features:
{ANY}
• internal_key (k: K_): K_
Retrieve the internal key object which correspond to the existing entry k (the one memorized into the Current dictionary).
{}
{}
{ANY}
Other features:
{ANY}
{ANY}
{}
Counting:
{ANY}
{}
Indexing:
{ANY}
put (v: V_, k: K_) assign at
deferred procedure
{ANY}
Change some existing entry or add the new one.
fast_put (v: V_, k: K_) assign fast_at
deferred procedure
{ANY}
Same job as put, but uses basic = for comparison.
deferred procedure
{ANY}
To add a new entry k with its associated value v.
set_item (v: V_, index: INTEGER_32)
deferred procedure
{ANY}
remove (k: K_)
deferred procedure
{ANY}
Remove entry k (which may exist or not before this call).
fast_remove (k: K_)
deferred procedure
{ANY}
Same job as remove, but uses basic = for comparison.
clear_count
deferred procedure
{ANY}
Discard all items (is_empty is True after that call).
clear_count_and_capacity
deferred procedure
{ANY}
Discard all items (is_empty is True after that call).
capacity: INTEGER_32
deferred function
{ANY}
Approximation of the actual internal storage capacity.
copy (other: DICTIONARY [V_, K_])
effective procedure
{ANY}
Reinitialize by copying all associations of other.
new_iterator_on_items: ITERATOR[V_]
effective function
{ANY}
make
deferred procedure
{}
Creates an empty dictionary.
manifest_make (needed_capacity: INTEGER_32)
effective procedure
{}
Manifest creation of a dictionary.
manifest_put (index: INTEGER_32, v: V_, k: K_)
effective procedure
{}
manifest_semicolon_check: INTEGER_32
is 2
constant attribute
{}
Put semicolons between successive value-key pairs.
key_safe_equal (k1: K_, k2: K_): BOOLEAN
effective function
{}
Because keys are never Void, we do not rely on the SAFE_EQUAL class.
is_empty: BOOLEAN
effective function
{ANY}
Is it empty?
has (k: K_): BOOLEAN
deferred function
{ANY}
Is there a value currently associated with key k?
at (k: K_): V_
deferred function
{ANY}
Return the value associated to key k.
infix "@" (k: K_): V_
frozen
effective function
{ANY}
The infix notation which is actually a synonym for at.
reference_at (k: K_): V_
deferred function
{ANY}
Return Void or the value associated with key k.
fast_has (k: K_): BOOLEAN
deferred function
{ANY}
Is there a value currently associated with key k?
fast_at (k: K_): V_
deferred function
{ANY}
Return the value associated to key k using basic = for comparison.
fast_reference_at (k: K_): V_
deferred function
{ANY}
Same work as reference_at, but basic = is used for comparison.
occurrences (v: V_): INTEGER_32
effective function
{ANY}
Number of occurrences using is_equal for comparison.
fast_occurrences (v: V_): INTEGER_32
effective function
{ANY}
Number of occurrences using basic = for comparison.
key_at (v: V_): K_
effective function
{ANY}
Retrieve the key used for value v using is_equal for comparison.
fast_key_at (v: V_): K_
effective function
{ANY}
Retrieve the key used for value v using = for comparison.
lower: INTEGER_32
is 1
constant attribute
{ANY}
Minimum index.
upper: INTEGER_32
effective function
{ANY}
Maximum index.
item (index: INTEGER_32): V_
deferred function
{ANY}
Item at the corresponding index i.
key (index: INTEGER_32): K_
deferred function
{ANY}
first: V_
effective function
{ANY}
The very first item.
last: V_
effective function
{ANY}
The last item.
new_iterator_on_keys: ITERATOR[K_]
deferred function
{ANY}
new_iterator: ITERATOR[TUPLE 2[V_, K_]]
deferred function
{ANY}
key_map_in (buffer: COLLECTION[K_])
effective procedure
{ANY}
Append in buffer, all available keys (this may be useful to speed up the traversal).
item_map_in (buffer: COLLECTION[V_])
effective procedure
{ANY}
Append in buffer, all available items (this may be useful to speed up the traversal).
keys: TRAVERSABLE[K_]
effective function
{ANY}
An iterable of this map keys
items: TRAVERSABLE[V_]
effective function
{ANY}
An iterable of this map values Usually returns Current because MAP is TRAVERSABLE.
fast_is_equal (other: DICTIONARY [V_, K_]): BOOLEAN
effective function
{ANY}
Do both dictionaries have the same set of associations?
is_equal (other: DICTIONARY [V_, K_]): BOOLEAN
effective function
{ANY}
Do both dictionaries have the same set of associations?
is_equal_map (other: DICTIONARY [V_, K_]): BOOLEAN
effective function
{ANY}
Do both collections have the same lower, upper, and items?
out_in_tagged_out_memory
effective procedure
{ANY}
Append terse printable representation of current object in tagged_out_memory.
for_each (action: PROCEDURE[TUPLE[TUPLE 2[V_, K_]]])
effective procedure
{ANY}
Apply action to every [V_, K_] associations of Current.
do_all (action: ROUTINE[TUPLE[TUPLE 2[V_, K_]]])
frozen
effective procedure
{ANY}
Apply action to every [V_, K_] associations of Current.
for_all (test: FUNCTION[TUPLE[TUPLE 2[V_, K_]]]): BOOLEAN
effective function
{ANY}
Do all [V_, K_] associations satisfy test?
exists (test: FUNCTION[TUPLE[TUPLE 2[V_, K_]]]): BOOLEAN
effective function
{ANY}
Does at least one [V_, K_] association satisfy test?
aggregate (action: FUNCTION[TUPLE[TUPLE 3[V_, V_, K_], V_]], initial: V_): V_
effective function
{ANY}
Aggregate all the elements starting from the initial value.
internal_key (k: K_): K_
deferred function
{ANY}
Retrieve the internal key object which correspond to the existing entry k (the one memorized into the Current dictionary).
keys_memory: DICTIONARY_KEY_TRAVERSER[V_, K_]
writable attribute
{}
_inline_agent43 (v: V_, k: K_)
frozen
effective procedure
{}
enumerate: ENUMERATE[E_]
effective function
{ANY}
get_new_iterator: ITERATOR[E_]
frozen
effective function
{ANY}
generation: INTEGER_32
writable attribute
{ANY}
next_generation
effective procedure
{}
count: INTEGER_32
deferred function
{ANY}
Number of available items in the hoard.
_inline_agent1 (a: ROUTINE[TUPLE[TUPLE 1[E_]]], e: E_)
frozen
effective procedure
{}
valid_index (i: INTEGER_32): BOOLEAN
effective function
{ANY}
True when i is valid (i.e., inside actual bounds).
{"ft_lang_label":"__label__en","ft_lang_prob":0.88910735,"math_prob":0.8731745,"size":837,"snap":"2023-40-2023-50","text_gpt3_token_len":178,"char_repetition_ratio":0.108043216,"word_repetition_ratio":0.0,"special_character_ratio":0.20191158,"punctuation_ratio":0.10429448,"nsfw_num_words":0,"has_unicode_error":false,"math_prob_llama3":0.95745057,"pos_list":[0],"im_url_duplicate_count":[null],"WARC_HEADER":"{\"WARC-Type\":\"response\",\"WARC-Date\":\"2023-09-23T08:16:20Z\",\"WARC-Record-ID\":\"<urn:uuid:b181728d-3a0b-4de0-b512-90d3eeb14898>\",\"Content-Length\":\"104272\",\"Content-Type\":\"application/http; msgtype=response\",\"WARC-Warcinfo-ID\":\"<urn:uuid:9d0088a3-1dee-41f4-bf0c-c583ad554c32>\",\"WARC-Concurrent-To\":\"<urn:uuid:4c722ee8-f1a9-4150-b07d-6055671755d9>\",\"WARC-IP-Address\":\"148.251.79.23\",\"WARC-Target-URI\":\"https://doc.liberty-eiffel.org/api/libraries/api/liberty_core.d/storage.d/loadpath.se.d/DICTIONARY.html\",\"WARC-Payload-Digest\":\"sha1:UBZR3P5K3PCFCAZQIMN22B3QNI3PVMB7\",\"WARC-Block-Digest\":\"sha1:QV7WBBNLI4PIW3QH6JKNJTMWK7AD6GER\",\"WARC-Identified-Payload-Type\":\"text/html\",\"warc_filename\":\"/cc_download/warc_2023/CC-MAIN-2023-40/CC-MAIN-2023-40_segments_1695233506480.35_warc_CC-MAIN-20230923062631-20230923092631-00829.warc.gz\"}"}