@@ -4,17 +4,17 @@ weight = 0
44template = "doc.html"
55+++
66
7−A mold is
7+A mold is a
8+[//]: # (You should finish this thought :P)
89
9−Let's take some examples from `hoon.hoon`. `|$` is a new rune as of the writing of this document so you may see this spelled in slightly different way if you don't have the latest version of `hoon.hoon`.
10+Let's take some examples from `hoon.hoon`. `|$` is a new rune as of the writing of this document so you may see this spelled in slightly different way if you don't have the latest version of `hoon.hoon`. `|$` is the mold builder rune which takes a list of molds and produces a mold.
1011
1112```
1213++ pair
1314 |$ [head tail]
1415 [p=head q=tail]
1516```
16−
17−Here is a very simple mold builder. It takes two molds and produces a mold that is a pair of those with the faces `p` and `q`. `|$` is the mold builder rune which takes a list of molds and produces a mold. An example of using this would be `(pair @ud @ud)` which would produce a mold for a cell of `@ud` and `@ud`.
17+Here is a very simple mold builder. It takes two molds and produces a mold that is a pair of those with the faces `p` and `q`. An example of using this would be `(pair @ud @ud)` which would produce a mold for a cell of `@ud` and `@ud`.
1818
1919```
2020++ each
@@ -24,14 +24,13 @@ Here is a very simple mold builder. It takes two molds and produces a mold that
2424 ==
2525```
2626
27−`each` is very slightly more complicated than `pair` was but not by much. `$%` is a rune that is a tagged union. The mold produced by this will match either `this` or `that`. An example of this would be `(each @ud @tas)` which will match either an `@ud` or a `@tas`.
27+`++each` is very slightly more complicated than `pair`. `$%` is a rune that is a tagged union. The mold produced by this will match either `this` or `that`. An example of this would be `(each @ud @tas)` which will match either an `@ud` or a `@tas`.
2828
2929```
3030++ list
3131 |$ [item]
3232 $@(~ [i=item t=(list item)])
3333```
34−
3534Here is a mold builder you've used previously. `$@` is a rune that will match the first thing if it's sample is an atom and the second if the sample is a cell. You should be familiar at this point that a `list` is either `~` or a pair of an item and a list of item.
3635
3736
@@ -40,8 +39,7 @@ Here is a mold builder you've used previously. `$@` is a rune that will match th
4039 |$ [item]
4140 [i/item t/(list item)]
4241```
43−
44−`lest` you may have heard of as a "non empty list." You can see that it lacks the `~` case that `list` has but it matches the second part of the `list` definition. Remember that Hoon types are defined by shape. `list` could also have been defined in terms of `lest` like this
42+`lest` you may have heard of as a "non empty list." You can see that it lacks the `~` case that `list` has but it matches the second part of the `list` definition. Remember that Hoon types are defined by shape. `list` could also have been defined in terms of `lest` like this:
4543
4644```
4745++ list
@@ -57,4 +55,4 @@ Another possible way to write it could have been
5755 $@(~ [i=item t=$])
5856```
5957
60−Any of these would be equivalent.
58+Any of these would be equivalent.