@@ -7,53 +7,62 @@ aliases = ["docs/reference/hoon-expressions/irregular/"]
77
88##### Reading guide
99
10−Headings contain runes, phonetics and tokens. Description contains a link to the docs and a short description of the rune. Both regular (R) and irregular (I) forms are given.
10+Headings contain runes, phonetics and tokens. Description contains a link to the
11+docs and a short description of the rune. Both regular and irregular forms are given.
1112
1213Want to `Ctrl-f` to find out the meaning of something weird you saw? Search for `\symbol`. ie `\?` or `\=`. It'll show you to the irregular forms that uses that symbol.
1314
14−## . dot (nock)
15+## `.` dot (nock)
1516
1617Anything Nock can do, Hoon can do also.
1718
18−### .+ dotlus
19+### `.+` dotlus
1920
2021[docs](@/docs/hoon/reference/rune/dot.md#dotlus) \\+
22+
2123`[%dtls p=atom]`: increment an atom with Nock 4.
2224
23−R: `.+(p)`
24−I: `+(p)`
25+Regular: `.+(p)`
26+
27+Irregular: `+(p)`
2528
26−### .= dottis
29+### `.=` dottis
2730
2831[docs](@/docs/hoon/reference/rune/dot.md#dottis) \\=
32+
2933`[%dtts p=hoon q=hoon]`: test for equality with Nock 5.
3034
31−R: `.=(p q)`
32−I: `=(p q)`
35+Regular: `.=(p q)`
3336
34−## ; mic (make)
37+Irregular: `=(p q)`
38+
39+## `;` mic (make)
3540
3641Miscellaneous useful macros.
3742
38−### ;: miccol
43+### `;:` miccol
3944
4045[docs](@/docs/hoon/reference/rune/mic.md#miccol) \\:
46+
4147`[%mccl p=hoon q=(list hoon)]`: call a binary function as an n-ary function.
4248
43−R: `;:(p q)`
44−I: `:(p q)`
49+Regular: `;:(p q)`
50+
51+Irregular: `:(p q)`
4552
46−## : col (cells)
53+## `:` col (cells)
4754
4855The cell runes.
4956
50−### :- colhep
57+### `:-` colhep
5158
5259[docs](@/docs/hoon/reference/rune/col.md#colhep) \\[\\]\\^\\+\\\`\\~
60+
5361`[%clhp p=hoon q=hoon]`: construct a cell (2-tuple).
5462
55−R: `:-(p q)`
56−I:
63+Regular: `:-(p q)`
64+
65+Irregular:
5766
5867```
5968 [a b] ==> :-(a b)
@@ -66,21 +75,24 @@ I:
6675 [a b]~ ==> [[a b] ~]
6776```
6877
69−## = tis (flow)
78+## `=` tis (flow)
7079
7180Flow hoons change the subject. All non-flow hoons (except cores) pass the subject down unchanged.
7281
73−### =< tisgal
82+### `=<` tisgal
7483
7584[docs](@/docs/hoon/reference/rune/tis.md#tisgal) \\:
85+
7686`[%tsgl p=hoon q=hoon]`: compose two hoons, inverted.
7787
78−R: `=<(p q)`
79−I: `p:q`
88+Regular: `=<(p q)`
8089
81−## | bar (core)
90+Irregular: `p:q`
91+
92+## `|` bar (core)
8293
8394[docs](@/docs/hoon/reference/rune/bar.md) \\$
95+
8496Core hoons are flow hoon.
8597
8698Technically not irregular syntax, but worth mentioning.
@@ -92,103 +104,143 @@ Technically not irregular syntax, but worth mentioning.
92104
93105The above runes produce a core with a single arm, named `$` ("buc"). We can recompute this arm with changes, useful for recursion among other things. Commonly used with the irregular syntax for `%=`, `:make`, like so: `$()`.
94106
95−## % cen (call)
107+## `%` cen (call)
96108
97109The invocation family of runes.
98110
99−### %= centis
111+### `%=` centis
100112
101113[docs](@/docs/hoon/reference/rune/cen.md#centis) \\(\\)
114+
102115`[%cnts p=wing q=(list (pair wing hoon))]`: take a wing with changes.
103116
104−R: `%=(p a 1)`
105−I: `p(a 1)`
117+Regular: `%=(p a 1)`
118+
119+Irregular: `p(a 1)`
106120
107−### %~ censig
121+### `%~` censig
108122
109123[docs](@/docs/hoon/reference/rune/cen.md#censig) \\~
124+
110125`[%cnsg p=wing q=hoon r=hoon]`: call with multi-armed door.
111126
112−R: `%~(p q r)`
113−I: `~(p q r)`
127+Regular: `%~(p q r)`
114128
115−### %- cenhep
129+Irregular: `~(p q r)`
130+
131+### `%-` cenhep
116132
117133[docs](@/docs/hoon/reference/rune/cen.md#cenhep) \\(\\)
134+
118135`[%cnhp p=hoon q=hoon]`: call a gate (function).
119136
120−R: `%-(p q)`
121−I: `(p q)`
137+Regular: `%-(p q)`
138+
139+Irregular: `(p q)`
122140
123141Note: `(p)` becomes `$:p` (`=<($ p)`), which behaves as you would expect (func call w/o args).
124142
125−## $ buc (mold)
143+## `$` buc (mold)
126144
127145A mold is a gate (function) that helps us build simple and rigorous data structures.
128146
129−### $? bucwut
147+### `$?` bucwut
130148
131149[docs](@/docs/hoon/reference/rune/buc.md#bucwut) \\?
150+
132151`[%bcwt p=(list model)]`: mold which normalizes a general union.
133152
134−R: `$?(p)`
135−I: `?(p)`
153+Regular: `$?(p)`
154+
155+Irregular: `?(p)`
136156
137−### $_ buccab
157+### `$_` buccab
138158
139159[docs](@/docs/hoon/reference/rune/buc.md#buccab) \\_
160+
140161`[%bccb p=value]`: mold which normalizes to an example.
141162
142−R: `$_(p)`
143−I: `_p`
163+Regular: `$_(p)`
164+
165+Irregular: `_p`
144166
145−## ? wut (test)
167+## `?` wut (test)
146168
147169Hoon has the usual branches and logical tests.
148170
149−### ?! wutzap
171+### `?!` wutzap
150172
151173[docs](@/docs/hoon/reference/rune/wut.md#wutzap) \\!
174+
152175`[%wtzp p=hoon]`: logical not.
153176
154−R: `?!(p)`
155−I: `!(p)`
177+Regular: `?!(p)`
178+
179+Irregular: `!(p)`
156180
157−### ?& wutpam
181+### `?&` wutpam
158182
159183[docs](@/docs/hoon/reference/rune/wut.md#wutpam) \\&
184+
160185`[%wtpm p=(list hoon)]`: logical and.
161186
162−R: `?&(p)`
163−I: `&(p)`
187+Regular: `?&(p)`
164188
165−### ?| wutbar
189+Irregular: `&(p)`
190+
191+### `?|` wutbar
166192
167193[docs](@/docs/hoon/reference/rune/wut.md#wutbar) \\|
194+
168195`[%wtbr p=(list hoon)]`: logical or.
169196
170−R: `?|(p)`
171−I: `|(p)`
197+Regular: `?|(p)`
198+
199+Irregular: `|(p)`
172200
173−## ^ ket (cast)
201+## `^` ket (cast)
174202
175203Lets us adjust types without violating type constraints.
176204
177−### ^- kethep
205+### `^:` ketcol
206+
207+[docs](@/docs/hoon/reference/ket.md#ketcol) \\,
208+
209+`[%ktcl p=spec]`: mold gate for type `p`.
210+
211+Regular: `^:(p)`
212+
213+Irregular: `,p`
214+
215+### `^-` kethep
178216
179217[docs](@/docs/hoon/reference/rune/ket.md#kethep) \\\`
218+
180219`[%kthp p=model q=value]`: typecast by mold.
181220
182−R: `^-(p q)`
183−I: `` `p`q ``
221+Regular: `^-(p q)`
222+
223+Irregular: `` `p`q ``
224+
225+### `^*` kettar
226+
227+[docs](@/docs/hoon/reference/rune/ket.md#kettar) \\*
228+
229+`[%kttr p=spec]`: produce bunt value of mold.
184230
185−### ^= kettis
231+Regular: `^*(p)`
232+
233+Irregular: `*p`
234+
235+### `^=` kettis
186236
187237[docs](@/docs/hoon/reference/rune/ket.md#kettis) \\=
238+
188239`[%ktts p=toga q=value]`: name a value.
189240
190−R: `^=(p q)`
191−I: `p=q`
241+Regular: `^=(p q)`
242+
243+Irregular: `p=q`
192244
193245## Miscellaneous
194246
@@ -220,6 +272,7 @@ See [%sand](@/docs/hoon/reference/rune/constants.md#warm) for other irregular de
220272### Limbs
221273
222274[docs](@/docs/hoon/reference/limbs/limb.md) \\+\\.\\^
275+
223276`[%limb p=(each @ud [p=@ud q=@tas])]`: attribute of subject.
224277
225278- `+15` is slot 15