Dictionary
Dictionary in POOL is a collection of word-value pairs which allows to access the values (read and write)
by using the associated words as keys.
Values can by of any type; different types of values can be stored in a single dictionary. An empty dictionary
is created by the plist
instruction. Values can be added or modified
by setitem
instruction or indexing (,
) and assignment
(:=
) operators. Use item
instruction or indexing operator
(,
) to read values. The prefered way of sequential access to {word value}
pairs
is foreach
loop. The order of pairs in a dictionary is set by an
internal algorithm.
Dictionary cannot be declared as a constant in a code.
POOL configuration is stored in system variables which are dictionaries:
:sys_inf
and :pool_inf
- read only;
:pool_cfg
- read and write allowed.
Example 1:
Both versions of the code below are equivalent. The first uses traditional LOGO instructions to access values
in a dictionary, while the second version the same access is denoted with POOL operators.
make "s plist
print :s
setitem "pass :s "secret
setitem "number :s 12.3
print :s
print item "pass :s
"s := plist
print :s
:s,"pass := "secret
:s,"number := 12.3
print :s
print :s,"pass
Output:
[]
[{pass secret} {number 12.3}]
secret
Example 2:
foreach "p :pool_inf [print :p]
Output:
{wall_mode wrap}
{turtles_count 1}
{current_fps 0}
{wall_left -396}
{wall_right 396}
{wall_top 195}
{wall_bottom -195}
{image_width 792}
{image_height 390}
See also:
Operations on data sets:
count, emptyp, plistp
Table of Content