on master help sign in
add spacing, backtic runes
0ffa14cdrbeefsupreme
hoon/reference/irregular.md+45−26
@@ -12,48 +12,52 @@ docs and a short description of the rune. Both regular and irregular forms are g
12
12
13Want 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.
13Want 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.
14
14
15−## . dot (nock)
15+## `.` dot (nock)
16
16
17Anything Nock can do, Hoon can do also.
17Anything Nock can do, Hoon can do also.
18
18
19−### .+ dotlus
19+### `.+` dotlus
20
20
21[docs](@/docs/hoon/reference/rune/dot.md#dotlus) \\+
21[docs](@/docs/hoon/reference/rune/dot.md#dotlus) \\+
22+
22`[%dtls p=atom]`: increment an atom with Nock 4.
23`[%dtls p=atom]`: increment an atom with Nock 4.
23
24
24Regular: `.+(p)`
25Regular: `.+(p)`
25
26
26Irregular: `+(p)`
27Irregular: `+(p)`
27
28
28−### .= dottis
29+### `.=` dottis
29
30
30[docs](@/docs/hoon/reference/rune/dot.md#dottis) \\=
31[docs](@/docs/hoon/reference/rune/dot.md#dottis) \\=
32+
31`[%dtts p=hoon q=hoon]`: test for equality with Nock 5.
33`[%dtts p=hoon q=hoon]`: test for equality with Nock 5.
32
34
33Regular: `.=(p q)`
35Regular: `.=(p q)`
34
36
35Irregular: `=(p q)`
37Irregular: `=(p q)`
36
38
37−## ; mic (make)
39+## `;` mic (make)
38
40
39Miscellaneous useful macros.
41Miscellaneous useful macros.
40
42
41−### ;: miccol
43+### `;:` miccol
42
44
43[docs](@/docs/hoon/reference/rune/mic.md#miccol) \\:
45[docs](@/docs/hoon/reference/rune/mic.md#miccol) \\:
46+
44`[%mccl p=hoon q=(list hoon)]`: call a binary function as an n-ary function.
47`[%mccl p=hoon q=(list hoon)]`: call a binary function as an n-ary function.
45
48
46Regular: `;:(p q)`
49Regular: `;:(p q)`
47
50
48Irregular: `:(p q)`
51Irregular: `:(p q)`
49
52
50−## : col (cells)
53+## `:` col (cells)
51
54
52The cell runes.
55The cell runes.
53
56
54−### :- colhep
57+### `:-` colhep
55
58
56[docs](@/docs/hoon/reference/rune/col.md#colhep) \\[\\]\\^\\+\\\`\\~
59[docs](@/docs/hoon/reference/rune/col.md#colhep) \\[\\]\\^\\+\\\`\\~
60+
57`[%clhp p=hoon q=hoon]`: construct a cell (2-tuple).
61`[%clhp p=hoon q=hoon]`: construct a cell (2-tuple).
58
62
59Regular: `:-(p q)`
63Regular: `:-(p q)`
@@ -71,22 +75,24 @@ Irregular:
71 [a b]~ ==> [[a b] ~]
75 [a b]~ ==> [[a b] ~]
72```
76```
73
77
74−## = tis (flow)
78+## `=` tis (flow)
75
79
76Flow hoons change the subject. All non-flow hoons (except cores) pass the subject down unchanged.
80Flow hoons change the subject. All non-flow hoons (except cores) pass the subject down unchanged.
77
81
78−### =< tisgal
82+### `=<` tisgal
79
83
80[docs](@/docs/hoon/reference/rune/tis.md#tisgal) \\:
84[docs](@/docs/hoon/reference/rune/tis.md#tisgal) \\:
85+
81`[%tsgl p=hoon q=hoon]`: compose two hoons, inverted.
86`[%tsgl p=hoon q=hoon]`: compose two hoons, inverted.
82
87
83Regular: `=<(p q)`
88Regular: `=<(p q)`
84
89
85Irregular: `p:q`
90Irregular: `p:q`
86
91
87−## | bar (core)
92+## `|` bar (core)
88
93
89[docs](@/docs/hoon/reference/rune/bar.md) \\$
94[docs](@/docs/hoon/reference/rune/bar.md) \\$
95+
90Core hoons are flow hoon.
96Core hoons are flow hoon.
91
97
92Technically not irregular syntax, but worth mentioning.
98Technically not irregular syntax, but worth mentioning.
@@ -98,31 +104,34 @@ Technically not irregular syntax, but worth mentioning.
98
104
99The 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: `$()`.
105The 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: `$()`.
100
106
101−## % cen (call)
107+## `%` cen (call)
102
108
103The invocation family of runes.
109The invocation family of runes.
104
110
105−### %= centis
111+### `%=` centis
106
112
107[docs](@/docs/hoon/reference/rune/cen.md#centis) \\(\\)
113[docs](@/docs/hoon/reference/rune/cen.md#centis) \\(\\)
114+
108`[%cnts p=wing q=(list (pair wing hoon))]`: take a wing with changes.
115`[%cnts p=wing q=(list (pair wing hoon))]`: take a wing with changes.
109
116
110Regular: `%=(p a 1)`
117Regular: `%=(p a 1)`
111
118
112Irregular: `p(a 1)`
119Irregular: `p(a 1)`
113
120
114−### %~ censig
121+### `%~` censig
115
122
116[docs](@/docs/hoon/reference/rune/cen.md#censig) \\~
123[docs](@/docs/hoon/reference/rune/cen.md#censig) \\~
124+
117`[%cnsg p=wing q=hoon r=hoon]`: call with multi-armed door.
125`[%cnsg p=wing q=hoon r=hoon]`: call with multi-armed door.
118
126
119Regular: `%~(p q r)`
127Regular: `%~(p q r)`
120
128
121Irregular: `~(p q r)`
129Irregular: `~(p q r)`
122
130
123−### %- cenhep
131+### `%-` cenhep
124
132
125[docs](@/docs/hoon/reference/rune/cen.md#cenhep) \\(\\)
133[docs](@/docs/hoon/reference/rune/cen.md#cenhep) \\(\\)
134+
126`[%cnhp p=hoon q=hoon]`: call a gate (function).
135`[%cnhp p=hoon q=hoon]`: call a gate (function).
127
136
128Regular: `%-(p q)`
137Regular: `%-(p q)`
@@ -131,93 +140,102 @@ Irregular: `(p q)`
131
140
132Note: `(p)` becomes `$:p` (`=<($ p)`), which behaves as you would expect (func call w/o args).
141Note: `(p)` becomes `$:p` (`=<($ p)`), which behaves as you would expect (func call w/o args).
133
142
134−## $ buc (mold)
143+## `$` buc (mold)
135
144
136A mold is a gate (function) that helps us build simple and rigorous data structures.
145A mold is a gate (function) that helps us build simple and rigorous data structures.
137
146
138−### $? bucwut
147+### `$?` bucwut
139
148
140[docs](@/docs/hoon/reference/rune/buc.md#bucwut) \\?
149[docs](@/docs/hoon/reference/rune/buc.md#bucwut) \\?
150+
141`[%bcwt p=(list model)]`: mold which normalizes a general union.
151`[%bcwt p=(list model)]`: mold which normalizes a general union.
142
152
143Regular: `$?(p)`
153Regular: `$?(p)`
144
154
145Irregular: `?(p)`
155Irregular: `?(p)`
146
156
147−### $_ buccab
157+### `$_` buccab
148
158
149[docs](@/docs/hoon/reference/rune/buc.md#buccab) \\_
159[docs](@/docs/hoon/reference/rune/buc.md#buccab) \\_
160+
150`[%bccb p=value]`: mold which normalizes to an example.
161`[%bccb p=value]`: mold which normalizes to an example.
151
162
152Regular: `$_(p)`
163Regular: `$_(p)`
153
164
154Irregular: `_p`
165Irregular: `_p`
155
166
156−## ? wut (test)
167+## `?` wut (test)
157
168
158Hoon has the usual branches and logical tests.
169Hoon has the usual branches and logical tests.
159
170
160−### ?! wutzap
171+### `?!` wutzap
161
172
162[docs](@/docs/hoon/reference/rune/wut.md#wutzap) \\!
173[docs](@/docs/hoon/reference/rune/wut.md#wutzap) \\!
174+
163`[%wtzp p=hoon]`: logical not.
175`[%wtzp p=hoon]`: logical not.
164
176
165Regular: `?!(p)`
177Regular: `?!(p)`
166
178
167Irregular: `!(p)`
179Irregular: `!(p)`
168
180
169−### ?& wutpam
181+### `?&` wutpam
170
182
171[docs](@/docs/hoon/reference/rune/wut.md#wutpam) \\&
183[docs](@/docs/hoon/reference/rune/wut.md#wutpam) \\&
184+
172`[%wtpm p=(list hoon)]`: logical and.
185`[%wtpm p=(list hoon)]`: logical and.
173
186
174Regular: `?&(p)`
187Regular: `?&(p)`
175
188
176Irregular: `&(p)`
189Irregular: `&(p)`
177
190
178−### ?| wutbar
191+### `?|` wutbar
179
192
180[docs](@/docs/hoon/reference/rune/wut.md#wutbar) \\|
193[docs](@/docs/hoon/reference/rune/wut.md#wutbar) \\|
194+
181`[%wtbr p=(list hoon)]`: logical or.
195`[%wtbr p=(list hoon)]`: logical or.
182
196
183Regular: `?|(p)`
197Regular: `?|(p)`
184
198
185Irregular: `|(p)`
199Irregular: `|(p)`
186
200
187−## ^ ket (cast)
201+## `^` ket (cast)
188
202
189Lets us adjust types without violating type constraints.
203Lets us adjust types without violating type constraints.
190
204
191−### ^: ketcol
205+### `^:` ketcol
192
206
193[docs](@/docs/hoon/reference/ket.md#ketcol) \\,
207[docs](@/docs/hoon/reference/ket.md#ketcol) \\,
208+
194`[%ktcl p=spec]`: mold gate for type `p`.
209`[%ktcl p=spec]`: mold gate for type `p`.
195
210
196Regular: `^:(p)`
211Regular: `^:(p)`
197
212
198Irregular: `,p`
213Irregular: `,p`
199
214
200−### ^- kethep
215+### `^-` kethep
201
216
202[docs](@/docs/hoon/reference/rune/ket.md#kethep) \\\`
217[docs](@/docs/hoon/reference/rune/ket.md#kethep) \\\`
218+
203`[%kthp p=model q=value]`: typecast by mold.
219`[%kthp p=model q=value]`: typecast by mold.
204
220
205Regular: `^-(p q)`
221Regular: `^-(p q)`
206
222
207Irregular: `` `p`q ``
223Irregular: `` `p`q ``
208
224
209−### ^* kettar
225+### `^*` kettar
210
226
211[docs](@/docs/hoon/reference/rune/ket.md#kettar) \\*
227[docs](@/docs/hoon/reference/rune/ket.md#kettar) \\*
228+
212`[%kttr p=spec]`: produce bunt value of mold.
229`[%kttr p=spec]`: produce bunt value of mold.
213
230
214Regular: `^*(p)`
231Regular: `^*(p)`
215
232
216Irregular: `*p`
233Irregular: `*p`
217
234
218−### ^= kettis
235+### `^=` kettis
219
236
220[docs](@/docs/hoon/reference/rune/ket.md#kettis) \\=
237[docs](@/docs/hoon/reference/rune/ket.md#kettis) \\=
238+
221`[%ktts p=toga q=value]`: name a value.
239`[%ktts p=toga q=value]`: name a value.
222
240
223Regular: `^=(p q)`
241Regular: `^=(p q)`
@@ -254,6 +272,7 @@ See [%sand](@/docs/hoon/reference/rune/constants.md#warm) for other irregular de
254### Limbs
272### Limbs
255
273
256[docs](@/docs/hoon/reference/limbs/limb.md) \\+\\.\\^
274[docs](@/docs/hoon/reference/limbs/limb.md) \\+\\.\\^
275+
257`[%limb p=(each @ud [p=@ud q=@tas])]`: attribute of subject.
276`[%limb p=(each @ud [p=@ud q=@tas])]`: attribute of subject.
258
277
259- `+15` is slot 15
278- `+15` is slot 15