on master help sign in
add ^* and ^:, adds spacing, more verbose
commite10ed380ddd1ca10b22d3f7a258fa51609a20940 authordrbeefsupreme <drbeefsupreme@discordja.net> dateWed 16 Jun 2021, 14:14 (5 years ago) parent94ed25d
1 file changed+65−31
hoon/reference/irregular.md+65−31
hoon/reference/irregular.md+65−31
@@ -7,7 +7,8 @@ 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
@@ -20,16 +21,18 @@ Anything Nock can do, Hoon can do also.
2021[docs](@/docs/hoon/reference/rune/dot.md#dotlus) \\+
2122`[%dtls p=atom]`: increment an atom with Nock 4.
2223
23−R: `.+(p)`
24−I: `+(p)`
24+Regular: `.+(p)`
25+
26+Irregular: `+(p)`
2527
2628### .= dottis
2729
2830[docs](@/docs/hoon/reference/rune/dot.md#dottis) \\=
2931`[%dtts p=hoon q=hoon]`: test for equality with Nock 5.
3032
31−R: `.=(p q)`
32−I: `=(p q)`
33+Regular: `.=(p q)`
34+
35+Irregular: `=(p q)`
3336
3437## ; mic (make)
3538
@@ -40,8 +43,9 @@ Miscellaneous useful macros.
4043[docs](@/docs/hoon/reference/rune/mic.md#miccol) \\:
4144`[%mccl p=hoon q=(list hoon)]`: call a binary function as an n-ary function.
4245
43−R: `;:(p q)`
44−I: `:(p q)`
46+Regular: `;:(p q)`
47+
48+Irregular: `:(p q)`
4549
4650## : col (cells)
4751
@@ -52,8 +56,9 @@ The cell runes.
5256[docs](@/docs/hoon/reference/rune/col.md#colhep) \\[\\]\\^\\+\\\`\\~
5357`[%clhp p=hoon q=hoon]`: construct a cell (2-tuple).
5458
55−R: `:-(p q)`
56−I:
59+Regular: `:-(p q)`
60+
61+Irregular:
5762
5863```
5964 [a b] ==> :-(a b)
@@ -75,8 +80,9 @@ Flow hoons change the subject. All non-flow hoons (except cores) pass the subjec
7580[docs](@/docs/hoon/reference/rune/tis.md#tisgal) \\:
7681`[%tsgl p=hoon q=hoon]`: compose two hoons, inverted.
7782
78−R: `=<(p q)`
79−I: `p:q`
83+Regular: `=<(p q)`
84+
85+Irregular: `p:q`
8086
8187## | bar (core)
8288
@@ -101,24 +107,27 @@ The invocation family of runes.
101107[docs](@/docs/hoon/reference/rune/cen.md#centis) \\(\\)
102108`[%cnts p=wing q=(list (pair wing hoon))]`: take a wing with changes.
103109
104−R: `%=(p a 1)`
105−I: `p(a 1)`
110+Regular: `%=(p a 1)`
111+
112+Irregular: `p(a 1)`
106113
107114### %~ censig
108115
109116[docs](@/docs/hoon/reference/rune/cen.md#censig) \\~
110117`[%cnsg p=wing q=hoon r=hoon]`: call with multi-armed door.
111118
112−R: `%~(p q r)`
113−I: `~(p q r)`
119+Regular: `%~(p q r)`
120+
121+Irregular: `~(p q r)`
114122
115123### %- cenhep
116124
117125[docs](@/docs/hoon/reference/rune/cen.md#cenhep) \\(\\)
118126`[%cnhp p=hoon q=hoon]`: call a gate (function).
119127
120−R: `%-(p q)`
121−I: `(p q)`
128+Regular: `%-(p q)`
129+
130+Irregular: `(p q)`
122131
123132Note: `(p)` becomes `$:p` (`=<($ p)`), which behaves as you would expect (func call w/o args).
124133
@@ -131,16 +140,18 @@ A mold is a gate (function) that helps us build simple and rigorous data structu
131140[docs](@/docs/hoon/reference/rune/buc.md#bucwut) \\?
132141`[%bcwt p=(list model)]`: mold which normalizes a general union.
133142
134−R: `$?(p)`
135−I: `?(p)`
143+Regular: `$?(p)`
144+
145+Irregular: `?(p)`
136146
137147### $_ buccab
138148
139149[docs](@/docs/hoon/reference/rune/buc.md#buccab) \\_
140150`[%bccb p=value]`: mold which normalizes to an example.
141151
142−R: `$_(p)`
143−I: `_p`
152+Regular: `$_(p)`
153+
154+Irregular: `_p`
144155
145156## ? wut (test)
146157
@@ -151,44 +162,67 @@ Hoon has the usual branches and logical tests.
151162[docs](@/docs/hoon/reference/rune/wut.md#wutzap) \\!
152163`[%wtzp p=hoon]`: logical not.
153164
154−R: `?!(p)`
155−I: `!(p)`
165+Regular: `?!(p)`
166+
167+Irregular: `!(p)`
156168
157169### ?& wutpam
158170
159171[docs](@/docs/hoon/reference/rune/wut.md#wutpam) \\&
160172`[%wtpm p=(list hoon)]`: logical and.
161173
162−R: `?&(p)`
163−I: `&(p)`
174+Regular: `?&(p)`
175+
176+Irregular: `&(p)`
164177
165178### ?| wutbar
166179
167180[docs](@/docs/hoon/reference/rune/wut.md#wutbar) \\|
168181`[%wtbr p=(list hoon)]`: logical or.
169182
170−R: `?|(p)`
171−I: `|(p)`
183+Regular: `?|(p)`
184+
185+Irregular: `|(p)`
172186
173187## ^ ket (cast)
174188
175189Lets us adjust types without violating type constraints.
176190
191+### ^: ketcol
192+
193+[docs](@/docs/hoon/reference/ket.md#ketcol) \\,
194+`[%ktcl p=spec]`: mold gate for type `p`.
195+
196+Regular: `^:(p)`
197+
198+Irregular: `,p`
199+
177200### ^- kethep
178201
179202[docs](@/docs/hoon/reference/rune/ket.md#kethep) \\\`
180203`[%kthp p=model q=value]`: typecast by mold.
181204
182−R: `^-(p q)`
183−I: `` `p`q ``
205+Regular: `^-(p q)`
206+
207+Irregular: `` `p`q ``
208+
209+### ^* kettar
210+
211+[docs](@/docs/hoon/reference/rune/ket.md#kettar) \\*
212+`[%kttr p=spec]`: produce bunt value of mold.
213+
214+Regular: `^*(p)`
215+
216+Irregular: `*p`
184217
185218### ^= kettis
186219
187220[docs](@/docs/hoon/reference/rune/ket.md#kettis) \\=
188221`[%ktts p=toga q=value]`: name a value.
189222
190−R: `^=(p q)`
191−I: `p=q`
223+Regular: `^=(p q)`
224+
225+Irregular: `p=q`
192226
193227## Miscellaneous
194228