2o: Normalizing Containers
+jar
+jar
Mold generator. A +jar
is a +map
of +list
.
Produces the mold of a map from key
to lists of +value
.
Accepts
key
is a $mold
, and is the type of the map key
value
is a $mold
, and is the type of items in the lists. The lists are the values in the map.
Produces
A $mold
.
Source
++ jar |$ [key value] (map key (list value))
Examples
> `(jar @t @ud)`(malt ~[['foo' ~[1 2 3]] ['bar' ~[4 5 6]]])
{[p='bar' q=~[4 5 6]] [p='foo' q=~[1 2 3]]}
Discussion
See also: +ja
, +by
, +map
, +list
s
+jug
+jug
Mold generator. A +jug
is a +map
of +set
.
Produces the mold of a map from key
to sets of value
.
Accepts
key
is a $mold
, and is the type of the map key.
value
is a $mold
, and is the type of items in the sets. The sets are the values in the map.
Produces
A $mold
.
Source
++ jug |$ [key value] (map key (set value))
Examples
> `(jug @t @ud)`(malt ~[['foo' (silt ~[1 2 3])] ['bar' (silt ~[4 5 6])]])
{[p='bar' q={5 6 4}] [p='foo' q={1 2 3}]}
Discussion
See also: +ju
, +by
, +map
, +set
+map
+map
Map
Mold generator. A +map
is a treap of key-value pairs.
Produces the mold of a map from key
to value
.
Accepts
key
is a $mold
.
value
is a $mold
.
Produces
A $mold
.
Source
++ map
|$ [key value]
$| (tree (pair key value))
|=(a=(tree (pair)) ?:(=(~ a) & ~(apt by a)))
Examples
> ? *(map @t @ud)
nlr([p=@t q=@ud])
{}
> `(map @t @ud)`(malt ~[['foo' 1] ['bar' 2] ['baz' 3]])
{[p='bar' q=2] [p='baz' q=3] [p='foo' q=1]}
Discussion
See also: +by
+qeu
+qeu
Queue
Mold generator. An ordered treap of items.
Produces the mold of a queue of $item
.
Accepts
$item
is a $mold
.
Produces
A $mold
.
Source
++ qeu
|$ [item]
$| (tree item)
|=(a=(tree) ?:(=(~ a) & ~(apt to a)))
Examples
> `(qeu @ud)`(~(gas to *(qeu @ud)) ~[1 2 3 4 5])
{5 4 3 2 1}
Discussion
See also: +to
+set
+set
Set
Mold generator. A +set
is an unordered treap of items.
Produces the mold of a set of $item
.
Accepts
$item
is a $mold
.
Produces
A $mold
.
Source
++ set
|$ [item]
$| (tree item)
|=(a=(tree) ?:(=(~ a) & ~(apt in a)))
Examples
> `(set @ud)`(silt ~[1 2 3 4 5])
{5 1 2 3 4}
Discussion
See also: +in
Last updated