Duplicate examples in keyword/rune form for each twig
Resolves #83
commita0a897ad7e837ac7c6ecb6ee01826544b96a02ae
author~hidwes-matped <jim.amberger@gmail.com>
dateSun 31 Jul 2016, 18:54 (10 years ago)
parent58d497d
docs/hoon/twig/bar-core/cab-door.md+11
@@ -47,6 +47,17 @@ is an irregular form for `:open($ foo bar)`, `%~`, "censig".
4747
4848A trivial door:
4949
50+```
51+/~zod:dojo> =mol :door a/@ud
52+ ++ succ +(a)
53+ ++ prev (dec a)
54+ --
55+/~zod:dojo> :call(succ mol 1)
56+2
57+/~zod:dojo> :call(succ mol :call(succ mol :call(prev mol 5)))
58+6
59+```
60+
5061```
5162/~zod:dojo> =mol |_ a/@ud
5263 ++ succ +(a)
docs/hoon/twig/bar-core/cen-core.md+13
@@ -26,6 +26,19 @@ an argument. A "method" on a core is an arm producing a gate.
2626
2727A trivial core:
2828
29+```
30+~zod:dojo> =foo :pin :name(x 58)
31+ :core
32+ ++ n (add 42 x)
33+ ++ g :gate b/@
34+ (add b n)
35+ --
36+~zod:dojo> n.foo
37+100
38+~zod:dojo> (g.foo 1)
39+101
40+```
41+
2942```
3043~zod:dojo> =foo =+ x=58
3144 |%
docs/hoon/twig/bar-core/dot-trap.md+20
@@ -33,6 +33,14 @@ A trap is a deferred computation.
3333
3434A trivial trap:
3535
36+```
37+~zod:dojo> =foo :trap(42)
38+~zod:dojo> :rap($ foo)
39+42
40+~zod:dojo> (foo)
41+42
42+```
43+
3644```
3745~zod:dojo> =foo |.(42)
3846~zod:dojo> $:foo
@@ -55,6 +63,18 @@ A more interesting trap:
556320
5664```
5765
66+```
67+~zod:dojo> =foo =/ reps 10
68+ =/ step 0
69+ =/ outp 0
70+ |.
71+ ?: =(step reps)
72+ outp
73+ $(outp (add outp 2), step +(step))
74+~zod:dojo> (foo)
75+20
76+```
77+
5878Note that we can use `:moar()` or `$()` to recurse back into the
5979trap, since it's a core with an `$` arm.
6080
docs/hoon/twig/bar-core/hep-loop.md+16
@@ -39,6 +39,11 @@ back into it with `:moar()` or `$()`.
3939
4040A trivial loop doesn't even recurse:
4141
42+```
43+~zod:dojo> :loop(42)
44+42
45+```
46+
4247```
4348~zod:dojo> |-(42)
444942
@@ -56,3 +61,14 @@ The classic loop is a decrement:
5661~zod:dojo> foo
576241
5863```
64+
65+```
66+~zod:dojo> =foo =/ a 42
67+ =/ b 0
68+ |-
69+ ?: =(a +(b))
70+ b
71+ $(b +(b))
72+~zod:dojo> foo
73+41
74+```
docs/hoon/twig/bar-core/tar-gill.md+9
@@ -59,5 +59,14 @@ Wet and dry gates in a nutshell:
5959[%dog %cat]
6060```
6161
62+```
63+~zod:dojo> =foo |=({a/* b/*} [b a])
64+~zod:dojo> =bar |*({a/* b/*} [b a])
65+~zod:dojo> (foo %cat %dog)
66+[6.778.724 7.627.107]
67+~zod:dojo> (bar %cat %dog)
68+[%dog %cat]
69+```
70+
6271The dry gate does not preserve the span of `a` and `b`; the wet
6372gate does.
docs/hoon/twig/bar-core/tis-gate.md+13
@@ -44,6 +44,12 @@ we can recurse back into it with `:moar()` or `$()`.
4444
4545A trivial gate:
4646
47+```
48+~zod:dojo> =foo :gate(a/@ +(a))
49+~zod:dojo> (foo 20)
50+21
51+```
52+
4753```
4854~zod:dojo> =foo |=(a/@ +(a))
4955~zod:dojo> (foo 20)
@@ -55,6 +61,13 @@ A slightly less trivial gate:
5561```
5662~zod:dojo> =foo :gate {a/@ b/@}
5763 (add a b)
64+~zod:dojo> :call(foo [20 400])
65+420
66+```
67+
68+```
69+~zod:dojo> =foo |= {a/@ b/@}
70+ (add a b)
5871~zod:dojo> (foo 20 400)
5972420
6073```
docs/hoon/twig/buc-mold/cab-shoe.md+13
@@ -43,3 +43,16 @@ produces its example instead.
4343~zod:dojo $:foo
4444[%foobar %moobaz]
4545```
46+
47+```
48+~zod:dojo> =foo $_([%foobar %moobaz])
49+
50+~zod:dojo> (foo %foo %bar)
51+[%foobar %moobaz]
52+
53+~zod:dojo> `foo`[%foobar %moobaz]
54+[%foobar %moobaz]
55+
56+~zod:dojo $:foo
57+[%foobar %moobaz]
58+```
docs/hoon/twig/buc-mold/cen-book.md+10
@@ -42,3 +42,13 @@ in the book terminates, or the default will be an infinite loop!
4242~zod:dojo> $:foo
4343[%foo p=0 q=0]~
4444```
45+
46+```
47+~zod:dojo> =foo $%({$foo p/@ud q/@ud} {$bar p/@ud})
48+
49+~zod:dojo> (foo [%bar 37])
50+[%bar p=37]
51+
52+~zod:dojo> $:foo
53+[%foo p=0 q=0]~
54+```
docs/hoon/twig/buc-mold/col-bank.md+13
@@ -41,3 +41,16 @@ Irregular: `{a b c}` is `:bank(a b c)`.
4141~zod:dojo> $:foo
4242[p=0 q=%$]
4343```
44+
45+```
46+~zod:dojo> =foo $:(p/@ud q/@tas)
47+
48+~zod:dojo> (foo 33 %foo)
49+[p=33 q=%foo]
50+
51+~zod:dojo> `foo`[33 %foo]
52+[p=33 q=%foo]
53+
54+~zod:dojo> $:foo
55+[p=0 q=%$]
56+```
docs/hoon/twig/buc-mold/hep-lamb.md+7
@@ -40,3 +40,10 @@ gates or other cores over the network!
4040~zod:dojo> ($:foo %foo)
4141%bar
4242```
43+
44+```
45+~zod:dojo> =foo $-($foo $bar)
46+
47+~zod:dojo> ($:foo %foo)
48+%bar
49+```
docs/hoon/twig/buc-mold/ket-bush.md+16
@@ -34,6 +34,22 @@ Regular: *2-fixed*.
3434~zod:dojo> (b [%foo 19 22])
3535[%foo p=19 q=22]
3636
37+~zod:dojo> $:b
38+[%bar p=0]
39+```
40+
41+```
42+~zod:dojo> =a $%({$foo p/@ud q/@ud} {$bar p/@ud})
43+
44+~zod:dojo> =b $^({a a} a)
45+
46+~zod:dojo> (b [[%bar 33] [%foo 19 22]])
47+[[%bar p=33] [%foo p=19 q=22]]
48+
49+~zod:dojo> (b [%foo 19 22])
50+[%foo p=19 q=22]
51+
3752~zod:dojo> $:b
3853[%bar p=0]
3954```
55+
docs/hoon/twig/buc-mold/pat-claw.md+13
@@ -39,3 +39,16 @@ Example:
3939~zod:dojo> $:a
4040[%foo p=0 q=0]
4141```
42+
43+```
44+~zod:dojo> =a $@($foo $:(p/$bar q/@ud))
45+
46+~zod:dojo> (a %foo)
47+%foo
48+
49+~zod:dojo> `a`[%bar 99]
50+[p=%bar q=99]
51+
52+~zod:dojo> $:a
53+[%foo p=0 q=0]
54+```
docs/hoon/twig/buc-mold/tis-coat.md+7
@@ -40,3 +40,10 @@ layer (as seen in the expansion above) to apply a coat.
4040~zod:dojo> (a %bar)
4141p=%foo
4242```
43+
44+```
45+~zod:dojo> =a $=(p $foo)
46+
47+~zod:dojo> (a %bar)
48+p=%foo
49+```
docs/hoon/twig/buc-mold/wut-pick.md+13
@@ -33,6 +33,19 @@ your mold to be used as a normalizer.
3333
3434## Examples
3535
36+```
37+~zod:dojo> =a :pick($foo $bar $baz)
38+
39+~zod:dojo> (a %baz)
40+%baz
41+
42+~zod:dojo> (a [37 45])
43+%foo
44+
45+~zod:dojo> $:a
46+$foo
47+```
48+
3649```
3750~zod:dojo> =a ?($foo $bar $baz)
3851
docs/hoon/twig/cen-call/cab-keep.md+12
@@ -30,6 +30,18 @@ span of a limb with mutations.
3030
3131## Examples
3232
33+```
34+~zod:dojo> =foo [p=42 q=6]
35+~zod:dojo> foo(p %bar)
36+[p=%bar q=6]
37+~zod:dojo> foo(p [55 99])
38+[p=[55 99] q=6]
39+~zod:dojo> :keep(foo p %bar)
40+[p=7.496.034 99]
41+~zod:dojo> :keep(foo p [55 99])
42+! nest-fail
43+```
44+
3345```
3446~zod:dojo> =foo [p=42 q=6]
3547~zod:dojo> foo(p %bar)
docs/hoon/twig/cen-call/dot-lace.md+6
@@ -23,6 +23,12 @@ Regular: *2-fixed*.
2323
2424## Examples
2525
26+```
27+~zod:dojo> =add-triple :gate({a/@ b/@ c/@} :(add a b c))
28+~zod:dojo> :lace([1 2 3] add-triple)
29+6
30+```
31+
2632```
2733~zod:dojo> =add-triple |=({a/@ b/@ c/@} :(add a b c))
2834~zod:dojo> %.([1 2 3] add-triple)
docs/hoon/twig/cen-call/hep-call.md+8
@@ -40,6 +40,14 @@ Hoon, this shared sample is likely to be pulled into a door.
4040
4141## Examples
4242
43+```
44+~zod:dojo> =add-triple :gate({a/@ b/@ c/@} :(add a b c))
45+~zod:dojo> (add-triple 1 2 3)
46+6
47+~zod:dojo> :call(add-triple [1 2 3])
48+6
49+```
50+
4351```
4452~zod:dojo> =add-triple |=({a/@ b/@ c/@} :(add a b c))
4553~zod:dojo> (add-triple 1 2 3)
docs/hoon/twig/cen-call/ket-calq.md+6
@@ -23,6 +23,12 @@ Regular: *4-fixed*.
2323
2424## Examples
2525
26+```
27+~zod:dojo> =add-triple :gate({a/@ b/@ c/@} :(add a b c))
28+~zod:dojo> :calq(add-triple 1 2 3)
29+6
30+```
31+
2632```
2733~zod:dojo> =add-triple |=({a/@ b/@ c/@} :(add a b c))
2834~zod:dojo> %^(add-triple 1 2 3)
docs/hoon/twig/cen-call/lus-calt.md+7−1
@@ -23,8 +23,14 @@ Regular: *3-fixed*.
2323
2424## Examples
2525
26+```
27+~zod:dojo> =add-triple :gate({a/@ b/@ c/@} :(add a b c))
28+~zod:dojo> :calt(add-triple 1 [2 3])
29+6
30+```
31+
2632```
2733~zod:dojo> =add-triple |=({a/@ b/@ c/@} :(add a b c))
2834~zod:dojo> %+(add-triple 1 [2 3])
29356
30−
36+```
docs/hoon/twig/col-cell/cab-scon.md+5
@@ -23,6 +23,11 @@ Regular: *2-fixed*.
2323
2424### Examples
2525
26+```
27+~zod:dojo> :scon(1 2)
28+[2 1]
29+```
30+
2631```
2732~zod:dojo> :_(1 2)
2833[2 1]
docs/hoon/twig/col-cell/hep-cons.md+2
@@ -38,6 +38,8 @@ compiler does), `[a b]` is the same as `[%cons a b]`.
3838## Examples
3939
4040```
41+~zod:dojo> :cons(1 2)
42+[1 2]
4143~zod:dojo> :-(1 2)
4244[1 2]
4345~zod:dojo> 1^2
docs/hoon/twig/col-cell/ket-conq.md+13−2
@@ -24,10 +24,21 @@ Regular: *4-fixed*.
2424## Examples
2525
2626```
27−/~zod:dojo> :^(1 2 3 4)
27+/~zod:dojo> :conq(1 2 3 4)
2828[1 2 3 4]
29−/~zod:dojo> :^ 5 6
29+/~zod:dojo> :conq 5
30+ 6
3031 7
3132 8
3233[5 6 7 8]
3334```
35+
36+```
37+/~zod:dojo> :^(1 2 3 4)
38+[1 2 3 4]
39+/~zod:dojo> :^ 5
40+ 6
41+ 7
42+ 8
43+[5 6 7 8]
44+```
docs/hoon/twig/col-cell/lus-cont.md+9
@@ -23,6 +23,15 @@ Regular: *3-fixed*.
2323
2424## Examples
2525
26+```
27+/~zod:dojo> :cont 1
28+ 2
29+ 3
30+[1 2 3]
31+/~zod:dojo> :cont(%a ~ 'b')
32+[%a ~ 'b']
33+```
34+
2635```
2736/~zod:dojo> :+ 1
2837 2
docs/hoon/twig/col-cell/sig-conl.md+14
@@ -39,6 +39,20 @@ Regular: *running*.
3939
4040## Examples
4141
42+```
43+~zod:dojo> :conl(6 5 3 4 2 1)
44+[6 5 3 4 2 1 ~]
45+~zod:dojo> ~[6 5 3 4 2 1]
46+[6 5 3 4 2 1 ~]
47+~zod:dojo> :conl 5
48+ 3
49+ 4
50+ 2
51+ 1
52+ ==
53+[5 3 4 2 1 ~]
54+```
55+
4256```
4357~zod:dojo> :~(5 3 4 2 1)
4458[5 3 4 2 1 ~]
docs/hoon/twig/col-cell/tar-conp.md+17
@@ -43,6 +43,23 @@ Regular: *running*.
4343
4444## Examples
4545```
46+/~zod:dojo> :conp(5 3 4 1 4 9 0 ~ 'a')
47+[5 3 4 1 4 9 0 ~ 'a']
48+/~zod:dojo> [5 3 4 1 4 9 0 ~ 'a']
49+[5 3 4 1 4 9 0 ~ 'a']
50+/~zod:dojo> :conp 5
51+ 3
52+ 4
53+ 1
54+ 4
55+ 9
56+ 0
57+ ~
58+ 'a'
59+ ==
60+[5 3 4 1 4 9 0 ~ 'a']
61+```
62+```
4663/~zod:dojo> :*(5 3 4 1 4 9 0 ~ 'a')
4764[5 3 4 1 4 9 0 ~ 'a']
4865/~zod:dojo> [5 3 4 1 4 9 0 ~ 'a']
docs/hoon/twig/dot-nock/lus-bump.md+2
@@ -21,6 +21,8 @@ Irregular: `+(6)` is `.+(6)`.
2121## Examples
2222
2323```
24+~zod:dojo> :bump(6)
25+7
2426~zod:dojo> +(6)
25277
2628~zod:dojo> +(%foo)
docs/hoon/twig/dot-nock/tar-nock.md+15
@@ -23,6 +23,21 @@ perfectly practical to use Hoon as a typeless language.
2323
2424## Examples
2525
26+```
27+~zod:dojo> :nock([20 30] [0 2])
28+20
29+~zod:dojo> :nock(33 [4 0 1])
30+34
31+~zod:dojo> :nock(|.(50) [9 2 0 1])
32+50
33+~zod:dojo> :nock(12 [7 [`1 [4 `1]] [`2 `3 `2]])
34+[12 13 12]
35+~zod:dojo> :nock(~ [5 1^4 [4 1^3]])
36+0
37+~zod:dojo> :nock(~ [5 1^5 [4 1^3]])
38+1
39+```
40+
2641```
2742~zod:dojo> .*([20 30] [0 2])
284320
docs/hoon/twig/dot-nock/tis-same.md+6
@@ -28,6 +28,12 @@ is a common cause of performance bugs.)
2828
2929## Examples
3030
31+```
32+~zod:dojo> :same(0 0)
33+%.y
34+~zod:dojo> :same(1 2)
35+%.n
36+```
3137```
3238~zod:dojo> =(0 0)
3339%.y
docs/hoon/twig/dot-nock/wut-deep.md+7
@@ -17,6 +17,13 @@ Regular: *1-fixed*.
1717
1818## Examples
1919
20+```
21+~zod:dojo> :deep(~)
22+%.n
23+~zod:dojo> :deep([2 3])
24+%.y
25+```
26+
2027```
2128~zod:dojo> .?(~)
2229%.n
docs/hoon/twig/ket-cast/bar-iron.md+7
@@ -31,6 +31,13 @@ interface.
3131
3232The prettyprinter shows the core metal (`.` gold, `|` iron):
3333
34+```
35+~zod:dojo> :gate(@ 1)
36+<1.gcq [@ @n <250.yur 41.wda 374.hzt 100.kzl 1.ypj %151>]>
37+~zod:dojo> :iron(:gate(@ 1))
38+<1|gcq [@ @n <250.yur 41.wda 374.hzt 100.kzl 1.ypj %151>]>
39+```
40+
3441```
3542~zod:dojo> |=(@ 1)
3643<1.gcq [@ @n <250.yur 41.wda 374.hzt 100.kzl 1.ypj %151>]>
docs/hoon/twig/ket-cast/hep-cast.md+14
@@ -33,6 +33,20 @@ infinite loop in the compiler).
3333
3434## Examples
3535
36+```
37+~zod:dojo> (add 90 7)
38+97
39+~zod:dojo> `@t`(add 90 7)
40+'a'
41+~zod:dojo> :cast(@t (add 90 7))
42+'a'
43+/~zod:dojo> =foo :gate a/@tas
44+ :cast (unit @ta)
45+ `a
46+/~zod:dojo> (foo 97)
47+[~ ~.a]
48+```
49+
3650```
3751~zod:dojo> (add 90 7)
385297
docs/hoon/twig/ket-cast/lus-like.md+4−1
@@ -23,4 +23,7 @@ Regular: *2-fixed*.
2323'a'
2424```
2525
26−
26+```
27+~zod:dojo> ^+('text' %a)
28+'a'
29+```
docs/hoon/twig/ket-cast/sig-burn.md+7
@@ -23,3 +23,10 @@ Regular: *1-fixed*.
2323~zod:dojo> (make '^~(|-(42))')
2424[%1 p=42]
2525```
26+
27+```
28+~zod:dojo> (make ':loop(42)')
29+[%8 p=[%1 p=[1 42]] q=[%9 p=2 q=[%0 p=1]]]
30+~zod:dojo> (make ':burn(:loop(42))')
31+[%1 p=42]
32+```
docs/hoon/twig/ket-cast/tis-name.md+3
@@ -20,12 +20,15 @@ Regular: *2-fixed*.
2020Irregular: `foo=bar` is `:name(foo bar)`.
2121
2222## Examples
23+
2324```
2425~zod:dojo> a=1
2526a=1
2627~zod:dojo> ^= a
2728 1
2829a=1
30+~zod:dojo> :name(a 1)
31+a=1
2932~zod:dojo> [b c d]=[1 2 3 4]
3033[b=1 c=2 d=[3 4]]
3134~zod:dojo> [b c d=[x y]]=[1 2 3 4]
docs/hoon/twig/ket-cast/wut-lead.md+7
@@ -30,6 +30,13 @@ specific generator.
3030
3131The prettyprinter shows the core metal (`.` gold, `?` lead):
3232
33+```
34+~zod:dojo> :gate(@ 1)
35+<1.gcq [@ @n <250.yur 41.wda 374.hzt 100.kzl 1.ypj %151>]>
36+~zod:dojo> :lead(:gate(@ 1))
37+<1?gcq [@ @n <250.yur 41.wda 374.hzt 100.kzl 1.ypj %151>]>
38+```
39+
3340```
3441~zod:dojo> |=(@ 1)
3542<1.gcq [@ @n <250.yur 41.wda 374.hzt 100.kzl 1.ypj %151>]>
docs/hoon/twig/sem-make/col-wad.md+7
@@ -43,6 +43,13 @@ Irregular: `:(add a b c)` is `;:(add a b c)`.
4343
4444## Examples
4545
46+```
47+~zod:dojo> (add 3 (add 4 5))
48+12
49+~zod:dojo> :wad(add 3 4 5)
50+12
51+```
52+
4653```
4754~zod:dojo> (add 3 (add 4 5))
485512
docs/hoon/twig/sem-make/sem-fry.md+16
@@ -32,6 +32,12 @@ Regular: *2-fixed*.
3232
3333Fails because of auras:
3434
35+```
36+~zod:dojo> :cast(tape ~[97 98 99])
37+! nest-fail
38+! exit
39+```
40+
3541```
3642~zod:dojo> ^-(tape ~[97 98 99])
3743! nest-fail
@@ -40,6 +46,11 @@ Fails because of auras:
4046
4147Succeeds because molds don't care about auras:
4248
49+```
50+~zod:dojo> :fry(tape ~[97 98 99])
51+"abc"
52+```
53+
4354```
4455~zod:dojo> ;;(tape ~[97 98 99])
4556"abc"
@@ -54,6 +65,11 @@ Succeeds because the mold normalizes:
5465
5566Fails because not a fixpoint:
5667
68+```
69+~zod:dojo> :fry(tape [50 51 52])
70+! exit
71+```
72+
5773```
5874~zod:dojo> ;;(tape [50 51 52])
5975! exit
docs/hoon/twig/sig-hint/bar-show.md+6
@@ -21,6 +21,12 @@ Regular: *2-fixed*.
2121
2222## Examples
2323
24+```
25+~zod:dojo> :show('sample error message' !!)
26+'sample error message'
27+ford: build failed
28+```
29+
2430```
2531~zod:dojo> ~|('sample error message' !!)
2632'sample error message'
docs/hoon/twig/sig-hint/buc-poll.md+5
@@ -21,6 +21,11 @@ Regular: *2-fixed*.
2121
2222## Examples
2323
24+```
25+~zod:dojo> :poll(%foo 3)
26+3
27+```
28+
2429```
2530~zod:dojo> ~$(%foo 3)
26313
docs/hoon/twig/sig-hint/cab-lurk.md+6
@@ -21,6 +21,12 @@ Shows `p` in stacktrace if `q` crashes.
2121
2222## Examples
2323
24+```
25+~zod:dojo> :lurk([%leaf "sample error message"] !!)
26+"sample error message"
27+ford: build failed
28+```
29+
2430```
2531~zod:dojo> ~_([%leaf "sample error message"] !!)
2632"sample error message"
docs/hoon/twig/sig-hint/gal-thin.md+7
@@ -24,6 +24,13 @@ computation we're about to perform, but rather about its product.
2424
2525## Examples
2626
27+```
28+~zod:dojo> (make ':thin(%a 42)')
29+[%7 p=[%1 p=42] q=[%10 p=97 q=[%0 p=1]]]
30+~zod:dojo> (make ':thin(%a.+(.) 42)')
31+[%7 p=[%1 p=42] q=[%10 p=[p=97 q=[%4 p=[%0 p=1]]] q=[%0 p=1]]]
32+```
33+
2734```
2835~zod:dojo> (make '~<(%a 42)')
2936[%7 p=[%1 p=42] q=[%10 p=97 q=[%0 p=1]]]
docs/hoon/twig/sig-hint/gar-hint.md+12
@@ -23,6 +23,11 @@ Hints are all conventions at the interpreter level.
2323
2424## Examples
2525
26+```
27+~zod:dojo> :hint(%a 42)
28+42
29+```
30+
2631```
2732~zod:dojo> ~>(%a 42)
283342
@@ -30,6 +35,13 @@ Hints are all conventions at the interpreter level.
3035
3136Running the compiler:
3237
38+```
39+~zod:dojo> (make ':hint(%a 42)')
40+[%10 p=97 q=[%1 p=42]]
41+~zod:dojo> (make ':hint(%a.+(2) 42)')
42+[%10 p=[p=97 q=[%4 p=[%1 p=2]]] q=[%1 p=42]]
43+```
44+
3345```
3446~zod:dojo> (make '~>(%a 42)')
3547[%10 p=97 q=[%1 p=42]]
docs/hoon/twig/sig-hint/pam-dump.md+6
@@ -21,6 +21,12 @@ Regular: *2-fixed*.
2121
2222## Examples
2323
24+```
25+~zod:dojo> :dump('halp' ~)
26+'halp'
27+~
28+```
29+
2430```
2531~zod:dojo> ~&('halp' ~)
2632'halp'
docs/hoon/twig/sig-hint/wut-warn.md+8
@@ -21,6 +21,14 @@ Regular: *4-fixed*.
2121
2222## Examples
2323
24+```
25+~zod:dojo> :warn((gth 1 2) 'oops' ~)
26+~
27+~zod:dojo> :warn((gth 1 0) 'oops' ~)
28+'oops'
29+~
30+```
31+
2432```
2533~zod:dojo> ~?((gth 1 2) 'oops' ~)
2634~
docs/hoon/twig/sig-hint/zap-peep.md+8
@@ -21,6 +21,14 @@ Regular: *2-fixed*.
2121
2222## Examples
2323
24+```
25+~zod:dojo> a
26+! -find.a
27+~zod:dojo> :peep('foo' a)
28+! @t
29+! find.a
30+```
31+
2432```
2533~zod:dojo> a
2634! -find.a
docs/hoon/twig/tis-flow/bar-new.md+9
@@ -33,6 +33,15 @@ is `:coat(foo @)` (wrapping a face around a mold).
3333
3434## Examples
3535
36+```
37+~zod:dojo> =foo :gate a/@
38+ :pin b/@
39+ :nip :(add a b c)
40+ c=2
41+~zod:dojo> (foo 5)
42+7
43+```
44+
3645```
3746~zod:dojo> =foo |= a/@
3847 =| b/@
docs/hoon/twig/tis-flow/col-fix.md+9
@@ -23,6 +23,15 @@ Regular: *jogging*, then *1-fixed*.
2323
2424## Examples
2525
26+```
27+~zod:dojo> :pin a=[b=1 c=2]
28+ :fix c.a 4
29+ b.a 3
30+ ==
31+ a
32+[b=3 c=4]
33+```
34+
2635```
2736~zod:dojo> =+ a=[b=1 c=2]
2837 =: c.a 4
docs/hoon/twig/tis-flow/dot-set.md+10
@@ -29,6 +29,16 @@ a new subject with a changed value. Note that the mutation uses
2929
3030## Examples
3131
32+```
33+~zod:dojo> :pin a=[b=1 c=2]
34+ :set b.a 3
35+ a
36+[b=3 c=2]
37+~zod:dojo> :pin a=[b=1 c=2]
38+ :set(b.a 3 a)
39+[b=3 c=2]
40+```
41+
3242```
3343~zod:dojo> =+ a=[b=1 c=2]
3444 =. b.a 3
docs/hoon/twig/tis-flow/fas-var.md+9
@@ -60,6 +60,15 @@ Regular: *3-fixed*.
6060
6161## Examples
6262
63+```
64+~zod:dojo> =foo :gate a/@
65+ :var b 1
66+ :var c/@ 2
67+ :(add a b c)
68+~zod:dojo> (foo 5)
69+8
70+```
71+
6372```
6473~zod:dojo> =foo |= a/@
6574 =/ b 1
docs/hoon/twig/tis-flow/gal-rap.md+2
@@ -26,6 +26,8 @@ Irregular: `foo:bar` is `:rap(foo bar)`.
2626## Examples
2727
2828```
29+~zod:dojo> :rap(b [a=1 b=2 c=3])
30+2
2931~zod:dojo> b:[a=1 b=2 c=3]
30322
3133~zod:dojo> [. .]:(add 2 4)
docs/hoon/twig/tis-flow/gar-per.md+7
@@ -17,6 +17,13 @@ Regular: *2-fixed*.
1717
1818## Examples
1919
20+```
21+~zod:dojo> :per([a=1 b=2 c=3] b)
22+2
23+~zod:dojo> :per((add 2 4) [. .])
24+[6 6]
25+```
26+
2027```
2128~zod:dojo> =>([a=1 b=2 c=3] b)
22292
docs/hoon/twig/tis-flow/hep-nip.md+11−2
@@ -28,10 +28,19 @@ is much smaller than the twig that uses it.
2828
2929## Examples
3030
31+```
32+~zod:dojo> =foo :gate a/@
33+ :pin :name(b 1)
34+ :nip :(add a b c)
35+ c=2
36+~zod:dojo> (foo 5)
37+8
38+```
39+
3140```
3241~zod:dojo> =foo |= a/@
33− =+ :name(b 1)
34− =- :(add a b c)
42+ =+ b=1)
43+ =- (add a b c)
3544 c=2
3645~zod:dojo> (foo 5)
37468
docs/hoon/twig/tis-flow/ket-sip.md+8
@@ -37,6 +37,14 @@ The `og` core is a stateful pseudo-random number generator.
3737We have to change the core state every time we generate a
3838random number, so we need to `:sip`:
3939
40+```
41+~zod:dojo> :pin rng=~(. og 420)
42+ :sip r1 rng (rads:rng 100)
43+ :sip r2 rng (rads:rng 100)
44+ [r1 r2]
45+[99 46]
46+```
47+
4048```
4149~zod:dojo> =+ rng=~(. og 420)
4250 =^ r1 rng (rads:rng 100)
docs/hoon/twig/tis-flow/lus-pin.md+10−1
@@ -27,9 +27,18 @@ Regular: *2-fixed*.
2727
2828## Examples
2929
30+```
31+~zod:dojo> =foo :gate a/@
32+ :pin :name(b 1)
33+ :pin :name(c 2)
34+ :(add a b c)
35+~zod:dojo> (foo 5)
36+8
37+```
38+
3039```
3140~zod:dojo> =foo |= a/@
32− =+ :name(b 1)
41+ =+ b=1
3342 =+ c=2
3443 :(add a b c)
3544~zod:dojo> (foo 5)
docs/hoon/twig/tis-flow/sem-rev.md+9
@@ -32,3 +32,12 @@ Regular: *3-fixed*.
3232~zod:dojo> (foo 5)
33338
3434```
35+
36+```
37+~zod:dojo> =foo |= a/@
38+ =/ b 1
39+ =; c/@ :(add a b c)
40+ 2
41+~zod:dojo> (foo 5)
42+8
43+```
docs/hoon/twig/tis-flow/tar-aka.md+16−2
@@ -24,12 +24,26 @@ noun stays the same; the alias is just recorded in its span.
2424## Examples
2525
2626```
27−~zod:dojo>
27+~zod:dojo>
28+ :pin a=1
29+ :aka b a
30+ [a b]
31+[1 1]
32+~zod:dojo>
33+ :pin a=1
34+ :aka b a
35+ :set a 2
36+ [a b]
37+[2 2]
38+```
39+
40+```
41+~zod:dojo>
2842 =+ a=1
2943 =* b a
3044 [a b]
3145[1 1]
32−~zod:dojo>
46+~zod:dojo>
3347 =+ a=1
3448 =* b a
3549 =. a 2
docs/hoon/twig/wut-test/bar-or.md+5
@@ -43,6 +43,11 @@ Irregular: `|(foo bar baz)` is `?|(foo bar baz)`.
4343
4444## Examples
4545
46+```
47+~zod:dojo> :or(=(6 42) =(42 42))
48+%.y
49+```
50+
4651```
4752~zod:dojo> |(=(6 42) =(42 42))
4853%.y
docs/hoon/twig/wut-test/col-if.md+5
@@ -37,6 +37,11 @@ Note also that all other branching twigs reduce to `:if`.
3737
3838## Examples
3939
40+```
41+~zod:dojo> :if((gth 1 2) 3 4)
42+4
43+```
44+
4045```
4146~zod:dojo> ?:((gth 1 2) 3 4)
42474
docs/hoon/twig/wut-test/dot-lest.md+13
@@ -30,6 +30,19 @@ twig of an `:if` is much heavier than the negative twig.
3030
3131## Examples
3232
33+```
34+~zod:dojo> :lest((gth 1 2) 3 4)
35+3
36+~zod:dojo> :lest(:fits(%a 'a') %not-a %yup)
37+%yup
38+~zod:dojo> :lest %.y
39+ 'this false case is less heavy than the true case'
40+ :if =(2 3)
41+ 'two not equal to 3'
42+ 'but see how \'r is much heavier than \'q?'
43+'but see how \'r is much heavier than \'q?'
44+```
45+
3346```
3447~zod:dojo> ?.((gth 1 2) 3 4)
35483
docs/hoon/twig/wut-test/gal-deny.md+5
@@ -25,6 +25,11 @@ Regular: *2-fixed*.
2525
2626## Examples
2727
28+```
29+~zod:dojo> :deny(=(3 4) %foo)
30+%foo
31+```
32+
2833```
2934~zod:dojo> ?<(=(3 4) %foo)
3035%foo
docs/hoon/twig/wut-test/gar-sure.md+5
@@ -25,6 +25,11 @@ Regular: *2-fixed*.
2525
2626## Examples
2727
28+```
29+~zod:dojo> :sure(=(3 3) %foo)
30+%foo
31+```
32+
2833```
2934~zod:dojo> ?>(=(3 3) %foo)
3035%foo
docs/hoon/twig/wut-test/ket-ifcl.md+10
@@ -30,6 +30,16 @@ Regular form: *3-fixed*
3030
3131## Examples
3232
33+```
34+~zod:dojo> :ifcl(0 1 2)
35+! mint-vain
36+! exit
37+~zod:dojo> :ifcl(`*`0 1 2)
38+2
39+~zod:dojo> :ifcl(`*`[1 2] 3 4)
40+3
41+```
42+
3343```
3444~zod:dojo> ?^(0 1 2)
3545! mint-vain
docs/hoon/twig/wut-test/lus-deft.md+14
@@ -50,6 +50,20 @@ An extra case will throw `mint-vain`. A lost case defaults.
5050
5151## Examples
5252
53+```
54+~zod:dojo> =cor :gate vat/?($a $b)
55+ :deft vat 240
56+ $a 20
57+ $b 42
58+ ==
59+~zod:dojo> (cor %a)
60+20
61+~zod:dojo> (cor %b)
62+42
63+~zod:dojo> (cor %c)
64+240
65+```
66+
5367```
5468~zod:dojo> =cor |= vat/?($a $b)
5569 ?+ vat 240
docs/hoon/twig/wut-test/pam-and.md+5
@@ -43,6 +43,11 @@ Irregular: `&(foo bar baz)` is `?&(foo bar baz)`.
4343
4444## Examples
4545
46+```
47+~zod:dojo> :and(=(6 6) =(42 42))
48+%.y
49+```
50+
4651```
4752~zod:dojo> &(=(6 6) =(42 42))
4853%.y
docs/hoon/twig/wut-test/pat-ifat.md+10
@@ -26,6 +26,16 @@ Regular: *3-fixed*.
2626
2727## Examples
2828
29+```
30+~zod:dojo> :ifat(0 1 2)
31+! mint-vain
32+! exit
33+~zod:dojo> :ifat(`*`0 1 2)
34+1
35+~zod:dojo> :ifat(`*`[1 2] 3 4)
36+4
37+```
38+
2939```
3040~zod:dojo> ?@(0 1 2)
3141! mint-vain
docs/hoon/twig/wut-test/sig-ifno.md+6
@@ -31,6 +31,12 @@ only for a true null, `~`.
3131
3232## Examples
3333
34+```
35+~zod:dojo> =foo ""
36+~zod:dojo> :ifno(foo 1 2)
37+1
38+```
39+
3440```
3541~zod:dojo> =foo ""
3642~zod:dojo> ?~(foo 1 2)
docs/hoon/twig/wut-test/tis-fits.md+6
@@ -34,6 +34,12 @@ A common error is `find.$`, meainng `p` is not a mold.
3434
3535## Examples
3636
37+```
38+~zod:dojo> =bar [%foo %bar %baz]
39+~zod:dojo> :fits({$foo *} bar)
40+%.y
41+```
42+
3743```
3844~zod:dojo> =bar [%foo %bar %baz]
3945~zod:dojo> ?=({$foo *} bar)
docs/hoon/twig/wut-test/zap-not.md+11
@@ -27,6 +27,17 @@ Irregular: `!foo` is `?!(foo)`.
2727
2828## Examples
2929
30+```
31+~zod:dojo> not:(=(1 2))
32+%.y
33+~zod:dojo> :not(&)
34+%.n
35+~zod:dojo> :not(|)
36+%.y
37+~zod:dojo> :not(gth 5 6)
38+%.y
39+```
40+
3041```
3142~zod:dojo> ?!(.=(1 2))
3243%.y
docs/hoon/twig/zap-wild/gar-wrap.md+5
@@ -22,6 +22,11 @@ span-noun cell is generally called a `vase`.
2222
2323## Examples
2424
25+```
26+~zod:dojo> :wrap(1)
27+[p=#t/@ud q=1]
28+```
29+
2530```
2631~zod:dojo> !>(1)
2732[p=#t/@ud q=1]
docs/hoon/twig/zap-wild/tis-code.md+9
@@ -17,6 +17,15 @@ Regular: *1-fixed*.
1717
1818## Examples
1919
20+```
21+~zod:dojo> :code(20)
22+[1 20]
23+~zod:dojo> :code(~zod)
24+[1 0]
25+~zod:dojo> :code((add 2 2))
26+[8 [9 3.110.356 0 31] 9 2 [0 4] [7 [0 3] 1 2 2] 0 11]
27+```
28+
2029```
2130~zod:dojo> !=(20)
2231[1 20]
docs/hoon/twig/zap-wild/wut-need.md+9
@@ -18,6 +18,15 @@ Regular: *2-fixed*.
1818
1919## Examples
2020
21+```
22+~zod:dojo> :need(264 (add 2 2))
23+4
24+~zod:dojo> :need(164 (add 2 2))
25+4
26+~zod:dojo> :need(64 (add 2 2))
27+! exit
28+```
29+
2130```
2231~zod:dojo> !?(264 (add 2 2))
23324
docs/hoon/twig/zap-wild/zap-fail.md+5
@@ -21,6 +21,11 @@ Nothing. Always crashes, with span `%void`.
2121
2222## Examples
2323
24+```
25+~zod:dojo> :fail
26+! exit
27+```
28+
2429```
2530~zod:dojo> !!
2631! exit