on master help sign in
adds backtics to headers for runes
0a105a1syzygyzer
reference/hoon-expressions/rune/bar.md+12−12
@@ -14,7 +14,7 @@ with changes, which useful for recursion among other things:
14
14
15## Runes
15## Runes
16
16
17−### |_ "barcab"
17+### `|_` "barcab"
18
18
19Produce a **door** (a core with a sample).
19Produce a **door** (a core with a sample).
20
20
@@ -104,7 +104,7 @@ The `ne` door prints a digit in base 10, 16, 32 or 64:
104'c'
104'c'
105```
105```
106
106
107−### |% "barcen"
107+### `|%` "barcen"
108
108
109Produce a core, `[battery payload]`.
109Produce a core, `[battery payload]`.
110
110
@@ -164,7 +164,7 @@ A trivial core:
164101
164101
165```
165```
166
166
167−### |: "barcol"
167+### `|:` "barcol"
168
168
169Produce a gate with a custom sample.
169Produce a gate with a custom sample.
170
170
@@ -212,7 +212,7 @@ This is useful if you want a gate to have a sample of a particular type, but you
21212
21212
213```
213```
214
214
215−### |. "bardot"
215+### `|.` "bardot"
216
216
217Produce a trap (a core with one arm `$`).
217Produce a trap (a core with one arm `$`).
218
218
@@ -280,7 +280,7 @@ trap, since it's a core with an `$` arm.
280
280
281> `$(...)` expands to `%=($ ...)` (["centis"](/docs/reference/hoon-expressions/rune/cen#centis)).
281> `$(...)` expands to `%=($ ...)` (["centis"](/docs/reference/hoon-expressions/rune/cen#centis)).
282
282
283−### |- "barhep"
283+### `|-` "barhep"
284
284
285Produce a trap (a core with one arm `$`) and evaluate it.
285Produce a trap (a core with one arm `$`) and evaluate it.
286
286
@@ -336,7 +336,7 @@ The classic loop is a decrement:
33641
33641
337```
337```
338
338
339−### |^ "barket"
339+### `|^` "barket"
340
340
341Produce a core whose battery includes a `$` arm and compute the latter.
341Produce a core whose battery includes a `$` arm and compute the latter.
342
342
@@ -395,7 +395,7 @@ A trivial example:
395100
395100
396```
396```
397
397
398−### |~ "barsig"
398+### `|~` "barsig"
399
399
400Produce an iron gate.
400Produce an iron gate.
401
401
@@ -434,7 +434,7 @@ See [this discussion of core variance models](@/docs/reference/hoon-expressions/
434<1|usl {a/@ $~}>
434<1|usl {a/@ $~}>
435```
435```
436
436
437−### |* "bartar"
437+### `|*` "bartar"
438
438
439Produce a wet gate (one-armed core with sample).
439Produce a wet gate (one-armed core with sample).
440
440
@@ -500,7 +500,7 @@ Wet and dry gates in a nutshell:
500The dry gate does not preserve the type of `a` and `b`; the wet
500The dry gate does not preserve the type of `a` and `b`; the wet
501gate does.
501gate does.
502
502
503−### |= "bartis"
503+### `|=` "bartis"
504
504
505Produce a gate (a one-armed core with a sample).
505Produce a gate (a one-armed core with a sample).
506
506
@@ -560,7 +560,7 @@ A slightly less trivial gate:
560430
560430
561```
561```
562
562
563−### |@ "barpat"
563+### `|@` "barpat"
564
564
565Produce a 'wet' core `[battery payload]`.
565Produce a 'wet' core `[battery payload]`.
566
566
@@ -593,7 +593,7 @@ A `|@` expression produces a 'wet' core whose payload is the expression's subjec
593
593
594The `|@` rune is just like the `|%` rune except that instead of producing a 'dry' core, it produces a 'wet' one. This allows for type polymorphism of its arms, using 'genericity'. See [Advanced types](@/docs/reference/hoon-expressions/advanced.md).
594The `|@` rune is just like the `|%` rune except that instead of producing a 'dry' core, it produces a 'wet' one. This allows for type polymorphism of its arms, using 'genericity'. See [Advanced types](@/docs/reference/hoon-expressions/advanced.md).
595
595
596−### |? "barwut"
596+### `|?` "barwut"
597
597
598Produce a lead trap.
598Produce a lead trap.
599
599
@@ -633,4 +633,4 @@ See this [discussion of the core variance model](@/docs/reference/hoon-expressio
633
633
634~zod:dojo> => ~ ^+ |?(%a) |.(%b)
634~zod:dojo> => ~ ^+ |?(%a) |.(%b)
635nest-fail
635nest-fail
636−```
636+```
reference/hoon-expressions/rune/buc.md+12−11
@@ -52,7 +52,7 @@ Irregular: `*` makes `%noun`, `^` makes `%cell`, `?` makes
52
52
53## Runes
53## Runes
54
54
55−### $_ "buccab"
55+### `$_` "buccab"
56
56
57`[%bscb p=hoon]`: structure that normalizes to an example.
57`[%bscb p=hoon]`: structure that normalizes to an example.
58
58
@@ -88,7 +88,7 @@ and produces its **example** instead.
88[%foobaz %moobaz]
88[%foobaz %moobaz]
89```
89```
90
90
91−### $% "buccen"
91+### `$%` "buccen"
92
92
93`[%bscn p=(list spec)]`: structure which recognizes a union tagged by head atom.
93`[%bscn p=(list spec)]`: structure which recognizes a union tagged by head atom.
94
94
@@ -123,7 +123,7 @@ type default value.
123[%baz p=0]
123[%baz p=0]
124```
124```
125
125
126−### $: "buccol"
126+### `$:` "buccol"
127
127
128`[%bscl p=(list spec)]`: form a cell type.
128`[%bscl p=(list spec)]`: form a cell type.
129
129
@@ -158,7 +158,7 @@ Irregular (structure mode): `[a b c]` is `$:(a b c)`.
158```
158```
159
159
160
160
161−### $< "bucgal"
161+### `$<` "bucgal"
162
162
163`[%bsld p=spec q=spec]`: Filters a pre-existing mold to obtain a mold
163`[%bsld p=spec q=spec]`: Filters a pre-existing mold to obtain a mold
164that excludes a particular structure.
164that excludes a particular structure.
@@ -193,7 +193,7 @@ ford: %ride failed to execute:
193 ```
193 ```
194
194
195
195
196−### $> "bucgar"
196+### `$>` "bucgar"
197
197
198`[%bsbn p=spec q=spec]`: Filters a mold to obtain a new mold
198`[%bsbn p=spec q=spec]`: Filters a mold to obtain a new mold
199matching a particular structure.
199matching a particular structure.
@@ -238,7 +238,7 @@ ford: %ride failed to execute:
238 ```
238 ```
239
239
240
240
241−### $- "buchep"
241+### `$-` "buchep"
242
242
243`[%bshp p=spec q=spec]`: structure that normalizes to an example gate.
243`[%bshp p=spec q=spec]`: structure that normalizes to an example gate.
244
244
@@ -266,7 +266,8 @@ Since a `$-` reduces to a [`$_`](#buccab), it is not useful for normalizing, jus
266%baz
266%baz
267```
267```
268
268
269+
269−### $^ "bucket"
270+### `$^` "bucket"
270
271
271`[%bskt p=spec q=spec]`: structure which normalizes a union tagged by head depth (cell).
272`[%bskt p=spec q=spec]`: structure which normalizes a union tagged by head depth (cell).
272
273
@@ -300,7 +301,7 @@ Regular: **2-fixed**.
300[%baz p=0]
301[%baz p=0]
301```
302```
302
303
303−### $~ "bucsig"
304+### `$~` "bucsig"
304
305
305`[%bssg p=hoon q=spec]`: define a custom type default value
306`[%bssg p=hoon q=spec]`: define a custom type default value
306
307
@@ -363,7 +364,7 @@ Using `$~`:
363%default-value
364%default-value
364```
365```
365
366
366−### $@ "bucpat"
367+### `$@` "bucpat"
367
368
368`[%bsvt p=spec q=spec]`: structure which normalizes a union tagged by head depth (atom).
369`[%bsvt p=spec q=spec]`: structure which normalizes a union tagged by head depth (atom).
369
370
@@ -400,7 +401,7 @@ Example:
400```
401```
401
402
402
403
403−### $= "buctis"
404+### `$=` "buctis"
404
405
405`[%bsts p=skin q=spec]`: structure which wraps a face around another structure.
406`[%bsts p=skin q=spec]`: structure which wraps a face around another structure.
406
407
@@ -435,7 +436,7 @@ p=%foo
435ford: %ride failed to execute:
436ford: %ride failed to execute:
436```
437```
437
438
438−### $? "bucwut"
439+### `$?` "bucwut"
439
440
440`[%bswt p=(list spec)]`: form a type from a union of other types.
441`[%bswt p=(list spec)]`: form a type from a union of other types.
441
442
reference/hoon-expressions/rune/cen.md+10−10
@@ -10,7 +10,7 @@ These runes reduce to the `%=` rune.
10
10
11## Runes
11## Runes
12
12
13−### %_ "cencab"
13+### `%_` "cencab"
14
14
15Resolve a wing with changes, preserving type.
15Resolve a wing with changes, preserving type.
16
16
@@ -73,7 +73,7 @@ See [how wings are resolved](@/docs/reference/hoon-expressions/limb/_index.md).
73! nest-fail
73! nest-fail
74```
74```
75
75
76−### %: "cencol"
76+### `%:` "cencol"
77
77
78Call a gate with many arguments.
78Call a gate with many arguments.
79
79
@@ -127,7 +127,7 @@ When `%:` is used in tall-form syntax, the series of expressions after `p` must
12799
12799
128```
128```
129
129
130−### %. "cendot"
130+### `%.` "cendot"
131
131
132Call a gate (function), inverted.
132Call a gate (function), inverted.
133
133
@@ -168,7 +168,7 @@ The `%.` rune is for evaluating the `$` arm of a gate, i.e., calling a function.
1686
1686
169```
169```
170
170
171−### %- "cenhep" {#cenhep}
171+### `%-` "cenhep" {#cenhep}
172
172
173Call a gate (function).
173Call a gate (function).
174
174
@@ -217,7 +217,7 @@ This rune is for evaluating the `$` arm of a gate, i.e., calling a gate as a fun
2176
2176
218```
218```
219
219
220−### %^ "cenket"
220+### `%^` "cenket"
221
221
222Call gate with triple sample.
222Call gate with triple sample.
223
223
@@ -251,7 +251,7 @@ AST:
2516
2516
252```
252```
253
253
254−### %+ "cenlus"
254+### `%+` "cenlus"
255
255
256Call gate with a cell sample.
256Call gate with a cell sample.
257
257
@@ -288,7 +288,7 @@ A `%+` expression is for calling a gate with a cell sample. `a` is the gate to
2886
2886
289```
289```
290
290
291−### %~ "censig"
291+### `%~` "censig"
292
292
293Evaluate an arm in a door.
293Evaluate an arm in a door.
294
294
@@ -340,7 +340,7 @@ See also [`|_`](@/docs/reference/hoon-expressions/rune/bar.md#barcab).
34020
34020
341```
341```
342
342
343−### %* "centar"
343+### `%*` "centar"
344
344
345Evaluate an expression, then resolve a wing with changes.
345Evaluate an expression, then resolve a wing with changes.
346
346
@@ -403,7 +403,7 @@ A `%*` expression evaluates some arbitrary Hoon expression, `b`, and then resolv
403[a=1 b=7 c=10]
403[a=1 b=7 c=10]
404```
404```
405
405
406−### %= "centis"
406+### `%=` "centis"
407
407
408Resolve a wing with changes.
408Resolve a wing with changes.
409
409
@@ -468,4 +468,4 @@ Here's that again in tall form:
468[p=42 q=6]
468[p=42 q=6]
469~zod:dojo> foo(+3 99)
469~zod:dojo> foo(+3 99)
470[p=5 99]
470[p=5 99]
471−```
471+```
reference/hoon-expressions/rune/col.md+8−8
@@ -8,7 +8,7 @@ The `:` ("col") expressions are used to produce cells, which are pairs of values
8
8
9## Runes
9## Runes
10
10
11−### :_ "colcab"
11+### `:_` "colcab"
12
12
13`[%clcb p=hoon q=hoon]`; construct a cell, inverted.
13`[%clcb p=hoon q=hoon]`; construct a cell, inverted.
14
14
@@ -29,7 +29,7 @@ Regular: **2-fixed**.
29[2 1]
29[2 1]
30```
30```
31
31
32−### :: "colcol"
32+### `::` "colcol"
33
33
34Code comment
34Code comment
35
35
@@ -48,7 +48,7 @@ Code comment
48 :: to the input
48 :: to the input
49```
49```
50
50
51−### :- "colhep"
51+### `:-` "colhep"
52
52
53`[%clhp p=hoon q=hoon]`: construct a cell (2-tuple).
53`[%clhp p=hoon q=hoon]`: construct a cell (2-tuple).
54
54
@@ -96,7 +96,7 @@ compiler does), `[a b]` is the same as `:-(a b)`.
96[~ 1]
96[~ 1]
97```
97```
98
98
99−### :^ "colket"
99+### `:^` "colket"
100
100
101`[%clkt p=hoon q=hoon r=hoon s=hoon]`: construct a quadruple (4-tuple).
101`[%clkt p=hoon q=hoon r=hoon s=hoon]`: construct a quadruple (4-tuple).
102
102
@@ -123,7 +123,7 @@ Regular: **4-fixed**.
123[5 6 7 8]
123[5 6 7 8]
124```
124```
125
125
126−### :+ "collus"
126+### `:+` "collus"
127
127
128
128
129`[%clls p=hoon q=hoon r=hoon]`: construct a triple (3-tuple).
129`[%clls p=hoon q=hoon r=hoon]`: construct a triple (3-tuple).
@@ -150,7 +150,7 @@ Regular: **3-fixed**.
150[%a ~ 'b']
150[%a ~ 'b']
151```
151```
152
152
153−### :~ "colsig"
153+### `:~` "colsig"
154
154
155`[%clsg p=(list hoon)]`: construct a null-terminated list.
155`[%clsg p=(list hoon)]`: construct a null-terminated list.
156
156
@@ -194,7 +194,7 @@ Regular: **running**.
194[5 3 4 2 1 ~]
194[5 3 4 2 1 ~]
195```
195```
196
196
197−### :* "coltar"
197+### `:*` "coltar"
198
198
199`[%cltr p=(list hoon)]`: construct an n-tuple.
199`[%cltr p=(list hoon)]`: construct an n-tuple.
200
200
@@ -242,4 +242,4 @@ Regular: **running**.
242 'a'
242 'a'
243 ==
243 ==
244[5 3 4 1 4 9 0 ~ 'a']
244[5 3 4 1 4 9 0 ~ 'a']
245−```
245+```
reference/hoon-expressions/rune/constants.md+4−4
@@ -45,7 +45,7 @@ We can see the contrast with warm atoms by using the compiler parser function, `
45[%rock p=%ud q=12]
45[%rock p=%ud q=12]
46```
46```
47
47
48−### `:_ "Paths"`
48+### `:_` "Paths"
49
49
50`[%path p=(list (each @ta hoon))]`: path with interpolation.
50`[%path p=(list (each @ta hoon))]`: path with interpolation.
51
51
@@ -74,7 +74,7 @@ Irregular: `/this/is/a/path`.
74~
74~
75```
75```
76
76
77−### `:_ "Strings with Interpolation"`
77+### `:_` "Strings with Interpolation"
78
78
79`[%knit p=(list (each @t hoon))]`: text string with interpolation.
79`[%knit p=(list (each @t hoon))]`: text string with interpolation.
80
80
@@ -122,7 +122,7 @@ String with interpolated prettyprinting:
122"hello, %world."
122"hello, %world."
123```
123```
124
124
125−### `:_ "Warm Atoms"` {#warm}
125+### `:_` "Warm Atoms" {#warm}
126
126
127`[%sand p=term q=@]`; a constant, warm atom.
127`[%sand p=term q=@]`; a constant, warm atom.
128
128
@@ -190,4 +190,4 @@ Irregular. A table of examples:
190```
190```
191
191
192The `@uv` characters are `0-9`, `a-v`. The `@uw` characters are
192The `@uv` characters are `0-9`, `a-v`. The `@uw` characters are
193−`0-9`, `a-z`, `A-Z`, `-` and `~`.
193+`0-9`, `a-z`, `A-Z`, `-` and `~`.
reference/hoon-expressions/rune/dot.md+6−6
@@ -8,7 +8,7 @@ Anything Nock can do, Hoon can do also. These runes are used for carrying out N
8
8
9## Runes
9## Runes
10
10
11−### .^ "dotket"
11+### `.^` "dotket"
12
12
13`[%dtkt p=spec q=hoon]`: load from the Arvo namespace with a fake Nock instruction: 'Nock `12`''.
13`[%dtkt p=spec q=hoon]`: load from the Arvo namespace with a fake Nock instruction: 'Nock `12`''.
14
14
@@ -83,7 +83,7 @@ You can modify the time of the file listing quite simply and ask for a listing f
83
83
84`our` is the value for your ship's name.
84`our` is the value for your ship's name.
85
85
86−### .+ "dotlus"
86+### `.+` "dotlus"
87
87
88`[%dtls p=hoon]`: increment an atom with Nock `4`.
88`[%dtls p=hoon]`: increment an atom with Nock `4`.
89
89
@@ -113,7 +113,7 @@ Irregular: `+(6)` is `.+(6)`.
113nest-fail
113nest-fail
114```
114```
115
115
116−### .* "dottar"
116+### `.*` "dottar"
117
117
118`[%dttr p=hoon q=hoon]`: evaluate with Nock `2`.
118`[%dttr p=hoon q=hoon]`: evaluate with Nock `2`.
119
119
@@ -156,7 +156,7 @@ therefore possible to use Hoon as a typeless language.
1561
1561
157```
157```
158
158
159−### .= "dottis" {#dottis}
159+### `.=` "dottis" {#dottis}
160
160
161`[%dtts p=hoon q=hoon]`: test for equality with Nock `5`.
161`[%dtts p=hoon q=hoon]`: test for equality with Nock `5`.
162
162
@@ -200,7 +200,7 @@ is a common cause of performance bugs.)
200nest-fail
200nest-fail
201```
201```
202
202
203−### .? "dotwut"
203+### `.?` "dotwut"
204
204
205`[%dtwt p=hoon]`: test for cell or atom with Nock `3`.
205`[%dtwt p=hoon]`: test for cell or atom with Nock `3`.
206
206
@@ -220,4 +220,4 @@ Regular: **1-fixed**.
220
220
221> .?([42 43])
221> .?([42 43])
222%.y
222%.y
223−```
223+```
reference/hoon-expressions/rune/ket.md+10−10
@@ -13,7 +13,7 @@ it never allows invalid nests, it sometimes rejects valid nests.
13
13
14## Runes
14## Runes
15
15
16−### ^| "ketbar"
16+### `^|` "ketbar"
17
17
18`[%ktbr p=hoon]`: convert a gold core to an iron core (contravariant).
18`[%ktbr p=hoon]`: convert a gold core to an iron core (contravariant).
19
19
@@ -49,7 +49,7 @@ The prettyprinter shows the core metal (`.` gold, `|` iron):
49<1|gcq [@ @n <250.yur 41.wda 374.hzt 100.kzl 1.ypj %151>]>
49<1|gcq [@ @n <250.yur 41.wda 374.hzt 100.kzl 1.ypj %151>]>
50```
50```
51
51
52−### ^: "ketcol"
52+### `^:` "ketcol"
53
53
54`[%ktcl p=spec]`: mold gate for type `p`.
54`[%ktcl p=spec]`: mold gate for type `p`.
55
55
@@ -85,7 +85,7 @@ A mold is an idempotent gate that is guaranteed to produce a noun of that type.
85ford: %ride failed to execute:
85ford: %ride failed to execute:
86```
86```
87
87
88−### ^. "ketdot"
88+### `^.` "ketdot"
89
89
90`[%ktdt p=hoon q=hoon]`: typecast on value produced by passing `q` to `p`.
90`[%ktdt p=hoon q=hoon]`: typecast on value produced by passing `q` to `p`.
91
91
@@ -126,7 +126,7 @@ mint-vain
126~[22 33]
126~[22 33]
127```
127```
128
128
129−### ^- "kethep"
129+### `^-` "kethep"
130
130
131`[%kthp p=spec q=hoon]`: typecast by explicit type label.
131`[%kthp p=spec q=hoon]`: typecast by explicit type label.
132
132
@@ -170,7 +170,7 @@ infinite loop in the compiler).
170[~ ~.a]
170[~ ~.a]
171```
171```
172
172
173−### ^+ "ketlus"
173+### `^+` "ketlus"
174
174
175`[%ktls p=hoon q=hoon]`: typecast by inferred type.
175`[%ktls p=hoon q=hoon]`: typecast by inferred type.
176
176
@@ -189,7 +189,7 @@ Regular: **2-fixed**.
189'a'
189'a'
190```
190```
191
191
192−### ^& "ketpam"
192+### `^&` "ketpam"
193
193
194`[%ktpm p=hoon]`: convert a core to a zinc core (covariant).
194`[%ktpm p=hoon]`: convert a core to a zinc core (covariant).
195
195
@@ -242,7 +242,7 @@ ford: %slim failed:
242ford: %ride failed to compute type:
242ford: %ride failed to compute type:
243```
243```
244
244
245−### ^~ "ketsig"
245+### `^~` "ketsig"
246
246
247`[%ktsg p=hoon]`: fold constant at compile time.
247`[%ktsg p=hoon]`: fold constant at compile time.
248
248
@@ -264,7 +264,7 @@ Regular: **1-fixed**.
264[%1 p=42]
264[%1 p=42]
265```
265```
266
266
267−### ^* "kettar"
267+### `^*` "kettar"
268
268
269`[%kttr p=spec]`: Produce example type value.
269`[%kttr p=spec]`: Produce example type value.
270
270
@@ -315,7 +315,7 @@ Irregular:
315""
315""
316```
316```
317
317
318−### ^= "kettis"
318+### `^=` "kettis"
319
319
320`[%ktts p=skin q=hoon]`: Bind name to a value.
320`[%ktts p=skin q=hoon]`: Bind name to a value.
321
321
@@ -351,7 +351,7 @@ a=1
351[b=1 c=2 d=[x=3 y4]]
351[b=1 c=2 d=[x=3 y4]]
352```
352```
353
353
354−### ^? "ketwut"
354+### `^?` "ketwut"
355
355
356`[%ktwt p=hoon]`: convert any core to a lead core (bivariant).
356`[%ktwt p=hoon]`: convert any core to a lead core (bivariant).
357
357
reference/hoon-expressions/rune/lus.md+5−5
@@ -12,7 +12,7 @@ There are various arm runes you can use to produce different kinds of arms. Nor
12
12
13## Runes
13## Runes
14
14
15−### +| "lusbar"
15+### `+|` "lusbar"
16
16
17Chapter label.
17Chapter label.
18
18
@@ -60,7 +60,7 @@ Notice that `p.q` has the label `%numbers`. Contrast with:
60]
60]
61```
61```
62
62
63−### +$ "lusbuc"
63+### `+$` "lusbuc"
64
64
65Produce a structure arm (type definition).
65Produce a structure arm (type definition).
66
66
@@ -98,7 +98,7 @@ nest-fail
98[%.y 22]
98[%.y 22]
99```
99```
100
100
101−### ++ "luslus"
101+### `++` "luslus"
102
102
103Produce a normal arm.
103Produce a normal arm.
104
104
@@ -133,7 +133,7 @@ Any Hoon expression, `q`, may be used to define the arm computation.
13312
13312
134```
134```
135
135
136−### +* "lustar"
136+### `+*` "lustar"
137
137
138
138
139Produce a type constructor arm.
139Produce a type constructor arm.
@@ -173,4 +173,4 @@ nest-fail
173
173
174> `(wrap-flag.c @)`[& 22]
174> `(wrap-flag.c @)`[& 22]
175[%.y 22]
175[%.y 22]
176−```
176+```
reference/hoon-expressions/rune/mic.md+7−7
@@ -9,7 +9,7 @@ Miscellaneous useful macros.
9
9
10## Runes
10## Runes
11
11
12−### ;: "miccol"
12+### `;:` "miccol"
13
13
14`[%mccl p=hoon q=(list hoon)]`: call a binary function as an n-ary function.
14`[%mccl p=hoon q=(list hoon)]`: call a binary function as an n-ary function.
15
15
@@ -59,7 +59,7 @@ Irregular: `:(add a b c)` is `;:(add a b c)`.
5912
5912
60```
60```
61
61
62−### ;+ "miclus"
62+### `;+` "miclus"
63
63
64make a single XML node (Sail)
64make a single XML node (Sail)
65
65
@@ -118,7 +118,7 @@ One interesting thing about Sail is that it allows you to use complex Hoon expre
118]
118]
119```
119```
120
120
121−### ;; "micmic"
121+### `;;` "micmic"
122
122
123`[%mcmc p=spec q=hoon]`: normalize with a mold, asserting fixpoint.
123`[%mcmc p=spec q=hoon]`: normalize with a mold, asserting fixpoint.
124
124
@@ -162,7 +162,7 @@ Fails because not a fixpoint:
162ford: %ride failed to execute:
162ford: %ride failed to execute:
163```
163```
164
164
165−### ;/ "micfas"
165+### `;/` "micfas"
166
166
167`[%mcnt p=hoon]`: tape as XML element.
167`[%mcnt p=hoon]`: tape as XML element.
168
168
@@ -179,7 +179,7 @@ ford: %ride failed to execute:
179[[%~. [%~. "foo] ~] ~]
179[[%~. [%~. "foo] ~] ~]
180```
180```
181
181
182−### ;~ "micsig"
182+### `;~` "micsig"
183
183
184`[%mcsg p=hoon q=(list hoon)]`: glue a pipeline together with a
184`[%mcsg p=hoon q=(list hoon)]`: glue a pipeline together with a
185product-sample adapter.
185product-sample adapter.
@@ -283,7 +283,7 @@ A more complicated example:
283"96acd"
283"96acd"
284```
284```
285
285
286−### ;* "mictar"
286+### `;*` "mictar"
287
287
288make a list of XML nodes from complex Hoon expression (Sail)
288make a list of XML nodes from complex Hoon expression (Sail)
289
289
@@ -335,7 +335,7 @@ If you need a complex Hoon expression to produce a `marl`, use the `;*` rune. O
335]
335]
336```
336```
337
337
338−### ;= "mictis"
338+### `;=` "mictis"
339
339
340make a list of XML nodes (Sail)
340make a list of XML nodes (Sail)
341
341
reference/hoon-expressions/rune/sig.md+13−13
@@ -7,7 +7,7 @@ Runes that use Nock `11` to pass non-semantic info to the interpreter.
7
7
8## Runes
8## Runes
9
9
10−### ~> "siggar"
10+### `~>` "siggar"
11
11
12`[%sggr p=$@(term [p=term q=hoon]) q=hoon]`: raw hint, applied
12`[%sggr p=$@(term [p=term q=hoon]) q=hoon]`: raw hint, applied
13to computation.
13to computation.
@@ -42,7 +42,7 @@ Running the compiler:
42[%10 p=[p=97 q=[%4 p=[%1 p=2]]] q=[%1 p=42]]
42[%10 p=[p=97 q=[%4 p=[%1 p=2]]] q=[%1 p=42]]
43```
43```
44
44
45−### ~| "sigbar"
45+### `~|` "sigbar"
46
46
47
47
48`[%sgbr p=hoon q=hoon]`: tracing printf.
48`[%sgbr p=hoon q=hoon]`: tracing printf.
@@ -72,7 +72,7 @@ ford: build failed
72ford: build failed
72ford: build failed
73```
73```
74
74
75−### ~$ "sigbuc"
75+### `~$` "sigbuc"
76
76
77`[%sgbc p=term q=hoon]`: profiling hit counter.
77`[%sgbc p=term q=hoon]`: profiling hit counter.
78
78
@@ -95,7 +95,7 @@ Regular: **2-fixed**.
953
953
96```
96```
97
97
98−### ~_ "sigcab"
98+### `~_` "sigcab"
99
99
100`[%sgcb p=hoon q=hoon]`: user-formatted tracing printf.
100`[%sgcb p=hoon q=hoon]`: user-formatted tracing printf.
101
101
@@ -124,7 +124,7 @@ ford: build failed
124ford: build failed
124ford: build failed
125```
125```
126
126
127−### ~% "sigcen"
127+### `~%` "sigcen"
128
128
129`[%sgcn p=term q=wing r=(list [term hoon]) s=hoon]`: jet registration.
129`[%sgcn p=term q=wing r=(list [term hoon]) s=hoon]`: jet registration.
130
130
@@ -214,7 +214,7 @@ Here we label the entire `++aesc` core for optimization. You can see the
214jet in `jets/e/aesc.c`.
214jet in `jets/e/aesc.c`.
215
215
216
216
217−### ~< "siggal"
217+### `~<` "siggal"
218
218
219
219
220`[%sggl p=$@(term [p=term q=hoon]) q=hoon]`: raw hint, applied to
220`[%sggl p=$@(term [p=term q=hoon]) q=hoon]`: raw hint, applied to
@@ -244,7 +244,7 @@ rather about its product.
244[%7 p=[%1 p=42] q=[%10 p=[p=97 q=[%4 p=[%0 p=1]]] q=[%0 p=1]]]
244[%7 p=[%1 p=42] q=[%10 p=[p=97 q=[%4 p=[%0 p=1]]] q=[%0 p=1]]]
245```
245```
246
246
247−### ~+ "siglus"
247+### `~+` "siglus"
248
248
249`[%sgls p=hoon]`: cache a computation.
249`[%sgls p=hoon]`: cache a computation.
250
250
@@ -284,7 +284,7 @@ This should work fine:
284573.147.844.013.817.084.101
284573.147.844.013.817.084.101
285```
285```
286
286
287−### ~/ "sigfas"
287+### `~/` "sigfas"
288
288
289`[%sgfs p=term q=hoon]`: jet registration for gate with
289`[%sgfs p=term q=hoon]`: jet registration for gate with
290registered context.
290registered context.
@@ -311,7 +311,7 @@ From the kernel:
311 $(a (dec a), b +(b))
311 $(a (dec a), b +(b))
312```
312```
313
313
314−### ~& "sigpam"
314+### `~&` "sigpam"
315
315
316`[%sgpm p=hoon q=hoon]`: debugging printf.
316`[%sgpm p=hoon q=hoon]`: debugging printf.
317
317
@@ -346,7 +346,7 @@ Regular: **2-fixed**.
346~
346~
347```
347```
348
348
349−### ~= "sigtis"
349+### `~=` "sigtis"
350
350
351`[%sgts p=hoon q=hoon]`: detect duplicate.
351`[%sgts p=hoon q=hoon]`: detect duplicate.
352
352
@@ -378,7 +378,7 @@ This code traverses a tree and replaces all instances of `32` with
378
378
379Without `~=`, it would build a copy of a completely unchanged tree. Sad!
379Without `~=`, it would build a copy of a completely unchanged tree. Sad!
380
380
381−### ~? "sigwut"
381+### `~?` "sigwut"
382
382
383`[%sgwt p=hoon q=hoon r=hoon]`: conditional debug printf.
383`[%sgwt p=hoon q=hoon r=hoon]`: conditional debug printf.
384
384
@@ -416,7 +416,7 @@ Regular: **4-fixed**.
416~
416~
417```
417```
418
418
419−### ~! "sigzap"
419+### `~!` "sigzap"
420
420
421`[%sgzp p=hoon q=hoon]`: print type on compilation fail.
421`[%sgzp p=hoon q=hoon]`: print type on compilation fail.
422
422
@@ -446,4 +446,4 @@ Regular: **2-fixed**.
446 a
446 a
447! @t
447! @t
448! find.a
448! find.a
449−```
449+```
reference/hoon-expressions/rune/terminators.md+3−3
@@ -7,7 +7,7 @@ The `--` and `==` are used as terminators: `--` for core expressions, and `==` f
7
7
8## Runes
8## Runes
9
9
10−### -- "hephep"
10+### `--` "hephep"
11
11
12##### Syntax
12##### Syntax
13
13
@@ -36,7 +36,7 @@ The `|%`, `|_`, and `|^` runes are used to create cores that can have arbitraril
3624
3624
37```
37```
38
38
39−### == "tistis"
39+### `==` "tistis"
40
40
41##### Syntax
41##### Syntax
42
42
@@ -75,4 +75,4 @@ Certain runes are used to create expressions that may include arbitrarily many s
75 e 21
75 e 21
76 ==
76 ==
77[a=13 b=15 c=17 d=19 e=21]
77[a=13 b=15 c=17 d=19 e=21]
78−```
78+```
reference/hoon-expressions/rune/tis.md+14−14
@@ -24,7 +24,7 @@ different situations. Hence the whole family of `=` runes.
24
24
25## Runes
25## Runes
26
26
27−### => "tisgar"
27+### `=>` "tisgar"
28
28
29`[%tsgr p=hoon q=hoon]`: compose two expressions.
29`[%tsgr p=hoon q=hoon]`: compose two expressions.
30
30
@@ -46,7 +46,7 @@ Regular: **2-fixed**.
46[6 6]
46[6 6]
47```
47```
48
48
49−### =| "tisbar"
49+### `=|` "tisbar"
50
50
51
51
52`[%tsbr p=spec q=hoon]`: combine a default type value with the subject.
52`[%tsbr p=spec q=hoon]`: combine a default type value with the subject.
@@ -78,7 +78,7 @@ Speaking more loosely, `=|` usually "declares a variable" which is "uninitialize
787
787
79```
79```
80
80
81−### =: "tiscol"
81+### `=:` "tiscol"
82
82
83`[%tscl p=(list (pair wing hoon)) q=hoon]`: change multiple legs in the subject.
83`[%tscl p=(list (pair wing hoon)) q=hoon]`: change multiple legs in the subject.
84
84
@@ -107,7 +107,7 @@ This rune is like `=.`, but for modifying the values of multiple legs of the sub
107[b=3 c=4]
107[b=3 c=4]
108```
108```
109
109
110−### =, "tiscom"
110+### `=,` "tiscom"
111
111
112`[%tscm p=hoon q=hoon]`: expose namespace
112`[%tscm p=hoon q=hoon]`: expose namespace
113
113
@@ -142,7 +142,7 @@ With a dojo-defined face:
142[2 4]
142[2 4]
143```
143```
144
144
145−### =. "tisdot"
145+### `=.` "tisdot"
146
146
147`[%tsdt p=wing q=hoon r=hoon]`: change one leg in the subject.
147`[%tsdt p=wing q=hoon r=hoon]`: change one leg in the subject.
148
148
@@ -178,7 +178,7 @@ a new subject just like the old one except for a changed value at `p`. Note tha
178nest-fail
178nest-fail
179```
179```
180
180
181−### =- "tishep"
181+### `=-` "tishep"
182
182
183`[%tshp p=hoon q=hoon]`: combine a new noun with the subject, inverted.
183`[%tshp p=hoon q=hoon]`: combine a new noun with the subject, inverted.
184
184
@@ -207,7 +207,7 @@ Regular: **2-fixed**.
2078
2078
208```
208```
209
209
210−### =^ "tisket"
210+### `=^` "tisket"
211
211
212`[%tskt p=skin q=wing r=hoon s=hoon]`: pin the head of a pair; change
212`[%tskt p=skin q=wing r=hoon s=hoon]`: pin the head of a pair; change
213a leg with the tail.
213a leg with the tail.
@@ -247,7 +247,7 @@ random number, so we use `=^`:
247[99 46]
247[99 46]
248```
248```
249
249
250−### =< "tisgal"
250+### `=<` "tisgal"
251
251
252`[%tsgl p=hoon q=hoon]`: compose two expressions, inverted.
252`[%tsgl p=hoon q=hoon]`: compose two expressions, inverted.
253
253
@@ -284,7 +284,7 @@ Irregular: `foo:baz` is `=<(foo baz)`.
284[6 6]
284[6 6]
285```
285```
286
286
287−### =+ "tislus"
287+### `=+` "tislus"
288
288
289
289
290`[%tsls p=hoon q=hoon]`: combine a new noun with the subject.
290`[%tsls p=hoon q=hoon]`: combine a new noun with the subject.
@@ -307,7 +307,7 @@ Loosely speaking, `=+` is the simplest way of "declaring a variable."
307
307
308##### Examples
308##### Examples
309
309
310−### =; "tismic"
310+### `=;` "tismic"
311
311
312`[%tsmc p=skin q=hoon r=hoon]`: combine a named noun with the subject, possibly with type annotation; inverted order.
312`[%tsmc p=skin q=hoon r=hoon]`: combine a named noun with the subject, possibly with type annotation; inverted order.
313
313
@@ -336,7 +336,7 @@ Regular: **3-fixed**.
3368
3368
337```
337```
338
338
339−### =/ "tisfas"
339+### `=/` "tisfas"
340
340
341`[%tsfs p=skin q=hoon r=hoon]`: combine a named noun with the subject, possibly with type annotation.
341`[%tsfs p=skin q=hoon r=hoon]`: combine a named noun with the subject, possibly with type annotation.
342
342
@@ -385,7 +385,7 @@ Regular: **3-fixed**.
3858
3858
386```
386```
387
387
388−### =~ "tissig"
388+### `=~` "tissig"
389
389
390
390
391`[%tssg p=(list hoon)]`: compose many expressions.
391`[%tssg p=(list hoon)]`: compose many expressions.
@@ -421,7 +421,7 @@ Regular: **running**.
4213
4213
422```
422```
423
423
424−### =* "tistar"
424+### `=*` "tistar"
425
425
426`[%tstr p=term q=hoon r=hoon]`: define a macro.
426`[%tstr p=term q=hoon r=hoon]`: define a macro.
427
427
@@ -454,7 +454,7 @@ The difference between macroing and pinning is that pinning changes the subject,
454[2 2]
454[2 2]
455```
455```
456
456
457−### =? "tiswut"
457+### `=?` "tiswut"
458
458
459`[$tswt p=wing q=hoon r=hoon s=hoon]`: conditionally change one leg in the subject.
459`[$tswt p=wing q=hoon r=hoon s=hoon]`: conditionally change one leg in the subject.
460
460
reference/hoon-expressions/rune/wut.md+14−14
@@ -30,7 +30,7 @@ side is taken), it fails with an error.
30
30
31## Runes
31## Runes
32
32
33−### ?> "wutgar"
33+### `?>` "wutgar"
34
34
35`[%wtgr p=hoon q=hoon]`: positive assertion.
35`[%wtgr p=hoon q=hoon]`: positive assertion.
36
36
@@ -68,7 +68,7 @@ nest-fail
68123
68123
69```
69```
70
70
71−### ?| "wutbar"
71+### `?|` "wutbar"
72
72
73`[%wtbr p=(list hoon)]`: logical OR.
73`[%wtbr p=(list hoon)]`: logical OR.
74
74
@@ -107,7 +107,7 @@ Irregular: `|(foo bar baz)` is `?|(foo bar baz)`.
107%.n
107%.n
108```
108```
109
109
110−### ?: "wutcol" {#wutcol}
110+### `?:` "wutcol" {#wutcol}
111
111
112`[%wtcl p=hoon q=hoon r=hoon]`: branch on a boolean test.
112`[%wtcl p=hoon q=hoon r=hoon]`: branch on a boolean test.
113
113
@@ -155,7 +155,7 @@ Note also that all other branching expressions reduce to `?:`.
1554
1554
156```
156```
157
157
158−### ?. "wutdot"
158+### `?.` "wutdot"
159
159
160`[%wtdt p=hoon q=hoon r=hoon]`: branch on a boolean test, inverted.
160`[%wtdt p=hoon q=hoon r=hoon]`: branch on a boolean test, inverted.
161
161
@@ -192,7 +192,7 @@ As is usual with inverted forms, use `?.` when the yes-case expression is much t
192'but see how \'r is much heavier than \'q?'
192'but see how \'r is much heavier than \'q?'
193```
193```
194
194
195−### ?- "wuthep"
195+### `?-` "wuthep"
196
196
197`[%wthp p=wing q=(list (pair spec value))]`: switch against a union, with no default.
197`[%wthp p=wing q=(list (pair spec value))]`: switch against a union, with no default.
198
198
@@ -254,7 +254,7 @@ will throw `mint-vain`.
254! nest-fail
254! nest-fail
255```
255```
256
256
257−### ?^ "wutket"
257+### `?^` "wutket"
258
258
259`[%wtkt p=wing q=hoon r=hoon]`: branch on whether a wing
259`[%wtkt p=wing q=hoon r=hoon]`: branch on whether a wing
260of the subject is a cell.
260of the subject is a cell.
@@ -287,7 +287,7 @@ The type of the wing, `p`, must not be known to be either an atom or a cell, or
2873
2873
288```
288```
289
289
290−### ?< "wutgal"
290+### `?<` "wutgal"
291
291
292`[%wtgl p=hoon q=hoon]`: negative assertion.
292`[%wtgl p=hoon q=hoon]`: negative assertion.
293
293
@@ -325,7 +325,7 @@ nest-fail
325[12 14]
325[12 14]
326```
326```
327
327
328−### ?+ "wutlus"
328+### `?+` "wutlus"
329
329
330`[%wtls p=wing q=hoon r=(list (pair spec hoon))]`: switch against
330`[%wtls p=wing q=hoon r=(list (pair spec hoon))]`: switch against
331a union, with a default.
331a union, with a default.
@@ -382,7 +382,7 @@ If there is a case that is never taken you'll get a `mint-vain` error.
382240
382240
383```
383```
384
384
385−### ?& "wutpam"
385+### `?&` "wutpam"
386
386
387`[%wtpm p=(list hoon)]`: logical AND.
387`[%wtpm p=(list hoon)]`: logical AND.
388
388
@@ -421,7 +421,7 @@ Irregular: `&(foo bar baz)` is `?&(foo bar baz)`.
421%.n
421%.n
422```
422```
423
423
424−### ?~ "wutsig"
424+### `?~` "wutsig"
425
425
426`[%wtsg p=wing q=hoon r=hoon]`: branch on whether a wing of the subject is null.
426`[%wtsg p=wing q=hoon r=hoon]`: branch on whether a wing of the subject is null.
427
427
@@ -448,7 +448,7 @@ It's bad style to use `?~` to test for any zero atom. Use it only for a true nu
4481
4481
449```
449```
450
450
451−### ?= "wuttis"
451+### `?=` "wuttis"
452
452
453`[%wtts p=spec q=wing]`: test pattern match.
453`[%wtts p=spec q=wing]`: test pattern match.
454
454
@@ -484,7 +484,7 @@ A common error is `find.$`, meaning `p` is not a type.
484%.y
484%.y
485```
485```
486
486
487−### ?@ "wutpat"
487+### `?@` "wutpat"
488
488
489`[%wtpt p=wing q=hoon r=hoon]`: branch on whether a wing of the subject is an atom.
489`[%wtpt p=wing q=hoon r=hoon]`: branch on whether a wing of the subject is an atom.
490
490
@@ -516,7 +516,7 @@ The type of the wing, `p`, must not be known to be either an atom or a cell, or
5164
5164
517```
517```
518
518
519−### ?! "wutzap"
519+### `?!` "wutzap"
520
520
521`[%wtzp p=hoon]`: logical NOT.
521`[%wtzp p=hoon]`: logical NOT.
522
522
@@ -548,4 +548,4 @@ Irregular: `!foo` is `?!(foo)`.
548
548
549~zod:dojo> !(gth 5 6)
549~zod:dojo> !(gth 5 6)
550%.y
550%.y
551−```
551+```
reference/hoon-expressions/rune/zap.md+7−7
@@ -6,7 +6,7 @@ aliases = ["docs/reference/hoon-expressions/rune/zap/"]
6+++
6+++
7## Runes
7## Runes
8
8
9−### !> "zapgar"
9+### `!>` "zapgar"
10
10
11`[%zpgr p=hoon]`: wrap a noun in its type.
11`[%zpgr p=hoon]`: wrap a noun in its type.
12
12
@@ -36,7 +36,7 @@ If you want just the type value, use a 'type spear'. This is `-:!>`, i.e., the
36#t/@ud
36#t/@ud
37```
37```
38
38
39−### !< "zapgal"
39+### `!<` "zapgal"
40
40
41`[%zpld p=spec q=hoon]`
41`[%zpld p=spec q=hoon]`
42
42
@@ -72,7 +72,7 @@ nest-fail
72[0 1]
72[0 1]
73```
73```
74
74
75−### !: "zapcol"
75+### `!:` "zapcol"
76
76
77`[%dbug p=hoon]`: turn on stack trace
77`[%dbug p=hoon]`: turn on stack trace
78
78
@@ -104,7 +104,7 @@ ford: %ride failed to execute:
104ford: %ride failed to execute:
104ford: %ride failed to execute:
105```
105```
106
106
107−### !. "zapdot"
107+### `!.` "zapdot"
108
108
109Turn off stack trace for a subexpression `p`
109Turn off stack trace for a subexpression `p`
110
110
@@ -148,7 +148,7 @@ ford: %ride failed to execute:
148ford: %ride failed to execute:
148ford: %ride failed to execute:
149```
149```
150
150
151−### != "zaptis"
151+### `!=` "zaptis"
152
152
153`[%zpts p=hoon]`: make the Nock formula for a Hoon expression.
153`[%zpts p=hoon]`: make the Nock formula for a Hoon expression.
154
154
@@ -189,7 +189,7 @@ Don't confuse the `!=` rune with:
189
189
190The syntax difference is that a test for equality takes two subexpressions, and the `!=` rune only one.
190The syntax difference is that a test for equality takes two subexpressions, and the `!=` rune only one.
191
191
192−### !? "zapwut"
192+### `!?` "zapwut"
193
193
194`[%zpwt p=@ q=hoon]`: restrict Hoon version.
194`[%zpwt p=@ q=hoon]`: restrict Hoon version.
195
195
@@ -215,7 +215,7 @@ Regular: **2-fixed**.
215! exit
215! exit
216```
216```
217
217
218−### !! "zapzap"
218+### `!!` "zapzap"
219
219
220`[%zpzp ~]`: crash.
220`[%zpzp ~]`: crash.
221
221