### Dictionaries and Vectors as Functions

IMAO this is one of the more interesting bits of theory embedded in `q`

:

Considering a dictionary as a (partial) function from its `key`

(domain) to its `value`

(range), then two dictionaries `f`

and `g`

such that `f`

's `value`

and `g`

's `key`

are of the same type can be composed:

q)f:`a`b`c!1 2 3 q)g:1 2 3!("foo";"bar";"quux") q)g f a| "foo" b| "bar" c| "quux" q)(g f)`b "bar" q)

Considering a vector `v`

as a dictionary with a `key`

of the vector of integers from `0`

to `count[v]-1`

, then `v`

can be composed with a dictionary `h`

of integer `value`

:

q)v:42 137 23 q)h:`a`b`c!0 1 2 q)v h a| 42 b| 137 c| 23 q)(v h)`b 137 q)