# 2l: Container from Container

## `+malt` <a href="#malt" id="malt"></a>

A `+map` from a `+list`.

Produces a `+map` from a `+list` `.a`.

#### Accepts

`.a` is a `+list`.

#### Produces

A `+map`.

#### Source

```hoon
++  malt                                                ::  map from list
  |*  a=(list)
  (molt `(list [p=_-<.a q=_->.a])`a)
```

#### Examples

```
> (malt [['ok' 'no'] ['a' 'b'] ['x' 'y'] ~])
[n=[p='x' q='y'] l={[p='a' q='b'] [p='ok' q='no']} r={}]
```

```
> (malt ~[[1 2 3] [4 5 6] [7 8 9]])
[n=[p=1 q=[2 3]] l={[p=4 q=[5 6]] [p=7 q=[8 9]]} r={}]
```

***

## `+molt` <a href="#molt" id="molt"></a>

A `+map` from pair `+list`.

Produces a `+map` from a `+list` of pairs `.a`.

#### Accepts

`.a` is a `+list` of pairs.

#### Produces

A `+map`.

#### Source

```hoon
++  molt
  |*  a=(list (pair))
  (~(gas by `(tree [p=_p.i.-.a q=_q.i.-.a})`~) a)
```

#### Examples

```
> =a `(list (pair))`[[1 2] [4 3] [11 0] ~]

> a
> ~[[p=1 q=2] [p=4 q=3] [p=11 q=0]]

> (molt a)
[n=[p=11 q=0] l={[p=4 q=3] [p=1 q=2]} r={}]
```

#### Discussion

Only used internally as a helper to `+malt`.

***

## `+silt` <a href="#silt" id="silt"></a>

A `+set` from a `+list`.

Produces a `+set` from a `+list` `.a`.

#### Accepts

`.a` is a `+list`.

#### Produces

A `+set`.

#### Source

```hoon
++  silt
  |*  a=(list)
  =+  b=*(tree _?>(?=(^ a) i.a))
  (~(gas in b) a)
```

#### Examples

```
> (silt `(list @t)`['c' 'hoon' 'javascript' 'python' ~])
[n='javascript' l={} r={'python' 'hoon' 'c'}]
```

***
