Command: get


array/proc/litproc/string int --> obj
dict literal --> obj
dict array --> obj

array/proc/litproc/string/dict is the container
int/literal is the index for the lookup.
The object returned depends on the container contents.

For arrays it is also possible to use an array of indices.
In this case individual indices may appear more than once.

For dictionaries the interpretation of the array argument is identical to
the one of the index array of operator Part. This is useful to extract
data from nested dictionaries and arranging them for further numerical
processing. The array elements are sequentially applied from left to right
to the object resulting from the get operation of the previous element.
If an array element is itself an array its elements are simultaneously
applied to the argument and the result is an array of the same size.

Applications of SLI like the NEST kernel may impliment variants
of get to provide a homogeneous interface to further containers.

Gewaltig Diesmann

get will call the various typedependend get operators returning
the specified object. There are many possibilities for the
combination of types see examples.

Alternatives: Functions get_a for arrays get_p for procedures
get_lp for literal procedures get_s for strings get_d and get_d_a
for dictionaries (all undocumented)
-> behavior and synopsis are the same.



(Hello World!) 0 get --> 184
[(Hello) 1 /a 12] 1 get --> 1
{(Hello World!) ==} 1 get --> ==
systemdict /get get --> +get+
[/a /b /c /d] [0 2] get -> [/a /c]
<< /a 3 /c 2 >> /c get --> 2
<< /a 3 /c 2 >> [/c] get --> 2
<< /a 3 /c 2 >> [[/c]] get --> [2]
<< /a 3 /c 2 >> [[/c /a /a]] get --> [2 3 3]
<< /a << /b 3 /c 2 >> >> [/a /c] get --> 2
<< /a << /b 3 /c 2 >> >> [/a [/b /c]] get --> [3 2]