on master help sign in
sm/ and ts/
commit050e818af308befc84f8566586e1dcf69552acac authorHenry Ault <henry@tlon.io> dateWed 30 Mar 2016, 16:32 (11 years ago) parentb0a390c
29 files changed+64−757
docs/system/hoon/runes/sm/smcl.md+6−38 docs/system/hoon/runes/sm/smcn.md−82 docs/system/hoon/runes/sm/smdq.md−46 docs/system/hoon/runes/sm/smhp.md−45 docs/system/hoon/runes/sm/smls.md−48 docs/system/hoon/runes/sm/smsg.md+4−28 docs/system/hoon/runes/sm/smsm.md+4−33 docs/system/hoon/runes/sm/smtr.md−50 docs/system/hoon/runes/sm/smzz.md−79 docs/system/hoon/runes/ts/.tsbr.md.swp docs/system/hoon/runes/ts/.tscl.md.swp docs/system/hoon/runes/ts/.tsdt.md.swp docs/system/hoon/runes/ts/.tsgl.md.swp docs/system/hoon/runes/ts/.tsgr.md.swp docs/system/hoon/runes/ts/.tshp.md.swp docs/system/hoon/runes/ts/.tskt.md.swp docs/system/hoon/runes/ts/.tsls.md.swp docs/system/hoon/runes/ts/.tssg.md.swp docs/system/hoon/runes/ts/.tstr.md.swp docs/system/hoon/runes/ts/tsbr.md+6−7 docs/system/hoon/runes/ts/tscl.md+4−29 docs/system/hoon/runes/ts/tsdt.md+2−35 docs/system/hoon/runes/ts/tsgl.md+7−37 docs/system/hoon/runes/ts/tsgr.md+7−28 docs/system/hoon/runes/ts/tshp.md+6−32 docs/system/hoon/runes/ts/tskt.md+7−44 docs/system/hoon/runes/ts/tsls.md+5−33 docs/system/hoon/runes/ts/tssg.md+3−34 docs/system/hoon/runes/ts/tstr.md+3−29
docs/system/hoon/runes/sm/smcl.md+6−38
@@ -1,48 +1,16 @@
1−`;: semcol`
2−====
1+# ``, `;:`, "semcol" `{$wad p/twig q/(list twig)}`
32
43Fold over tuple.
54
65Apply a binary function `p` to a tuple `q` with n elements. Similar to folding over the tuple `q`.
76
8−Syntax
9−======
7+Regular form: *running*
108
11−`;:` is a synthetic rune that applies `p`, a binary gate, to the n-ary
12−tuple `q`. `;:` is similar to folding over the tuple `q`, producing the
13−final result.
9+Irregular form:
1410
15−Produces
16−--------
11+`:(p i.q i.t.q i.t.t.q) ;:(p i.q i.t.q i.t.t.q)`
1712
18−Twig: `[%smcl p=twig q=tusk]`
19−
20−Accepts
21−-------
22−
23−`p` is a [`++twig`](). `q` is a [`++tusk`](), a list of twigs.
24−
25−Tall form
26−---------
27−
28− ;: p
29− i.q
30− i.t.q
31− i.t.t.q
32− ==
33−
34−Wide form
35−---------
36−
37− ;:(p i.q i.t.q i.t.t.q)
38−
39−Irregular form
40−--------------
41−
42− :(p i.q i.t.q i.t.t.q)
43−
44−Examples
45−--------
13+Examples:
4614
4715 ~zod/try=> (add 3 (add 4 5))
4816 12
@@ -61,5 +29,5 @@ gate `++add`.
6129 ~zod/try=> `tape`(weld "foo" (weld "bar" "baz"))
6230 "foobarbaz"
6331
64−Following on from our previous example, using `;:` with [`++weld`]() is
32+Following on from our previous example, using `;:` with `++weld` is
6533convenient for concatenating multiple strings.
docs/system/hoon/runes/sm/smcn.mddeleted−82
@@ -1,82 +0,0 @@
1−`;% semcen`
2−====
3−
4−`%-` in `++sail`.
5−
6−Performs the same function as `%-`, except within XML template syntax
7−(aka sail). Passes `q`, a list of n arguments, to function `p`.
8−
9−Produces
10−--------
11−
12−Twig: [`++marl`]()
13−
14−Accepts
15−-------
16−
17−`p` is a [`++twig`]().
18−
19−Tall form
20−---------
21−
22− ;% p
23−
24−Wide form
25−---------
26−
27− %{p}
28−
29−(within quoted form)
30−
31−Examples
32−--------
33−
34− ~zod/try=>
35− ;div:"%{|=(a=marl (weld a a))} repeat"
36− [ [%div ~]
37− ~[
38− [g=[n=%$ a=~[[n=%$ v=" repeat"]]] c=~]
39− [g=[n=%$ a=~[[n=%$ v=" repeat"]]] c=~]
40− ]
41− ]
42− ~zod/try=>
43− (poxo ;div:"%{|=(a=marl (weld a a))} repeat")
44− "<div> repeat repeat</div>"
45−
46−In this simple example we use a function, `|=(a=marl (weld a a))` that
47−produces a `++marl` twice. Using the irregular form of `;%` we produce a
48−repeated child node `'repeat'`. [`++poxo`]() prints our result in XML.
49−
50− ~zod/try=>
51− ;=
52− ;% |=(a=marl (turn a |=(b=manx ;script(src (poxo b));)))
53− ; /gep/hart.js
54− ; /main/lib/urb.js
55− ; //cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js
56− ==
57− ~[
58− [[%script [%src "/gep/hart.js
59− "] ~] ~]
60− [[%script [%src "/main/lib/urb.js
61− "] ~] ~]
62− [ [ %script
63− [%src "//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js
64− "]
65− ~
66− ]
67− ~
68− ]
69− ]
70− ~zod/try=>
71− %- many:poxo :_ ~
72− ;=
73− ;% |=(a=marl (turn a |=(b=manx ;script(src (poxo b));)))
74− ; /gep/hart.js
75− ; /main/lib/urb.js
76− ; //cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js
77− ==
78− "<script src="/gep/hart.js"></script><script src="/main/lib/urb.js"></script><script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js"></script>"
79−
80−Here we go through a similar example, passing a list of urls for a
81−script tag to a gate that produces a `<script>` tag. Since we produce
82−multiple tags, we use `many:poxo` to print our result as XML.
docs/system/hoon/runes/sm/smdq.mddeleted−46
@@ -1,46 +0,0 @@
1−`;" semdoq`
2−====
3−
4−Make string.
5−
6−`semdoq` is a synthetic rune used to make strings, interpreted or not.
7−
8−Produces
9−--------
10−
11−Twig: `[%smdq p=(list beer)]`
12−
13−Sample
14−------
15−
16−`p` is a [`++list`]() of [`++beer`]()s.
17−
18−Irregular form
19−--------------
20−
21− "foo"
22−
23−Examples
24−--------
25−
26− ~zod/try=> "foo"
27− "foo"
28− ~zod/try=> "bar"
29− "bar"
30−
31−Here we see our most common case of `semdoq`, producing strings ([`++tape`]()s).
32−
33− ~zod/try=> "ba{<+(2)>}r"
34− "ba3r"
35−
36−In this case we include some simple string interpolation using `{` and
37−`}`.
38−
39− ~zod/try=> (ream '"foo"')
40− [%smdq p=~[102 111 111]]
41− ~zod/try=> (ream '"ba{<+(2)>}r"')
42− [ %smdq
43− p=~[98 97 [~ p=[%cltr p=~[[%hxgl p=~[[%dtls p=[%dtzy p=%ud q=2]]]]]]] 114]
44− ]
45−
46−Using [`++ream`]() we can see how our previous expressions are parsed.
docs/system/hoon/runes/sm/smhp.mddeleted−45
@@ -1,45 +0,0 @@
1−`;- semhep`
2−====
3−
4−Interpolate string.
5−
6−Interpolates a string (aka [++tape]()) into a [`++marl`](), our datastructure for XML.
7−
8−Produces
9−--------
10−
11−Twig: tape
12−
13−Sample
14−------
15−
16−`p` is a [`++twig`]().
17−
18−Tall form
19−---------
20−
21− ;- a
22−
23−Wide form
24−---------
25−
26− -{a}
27−
28−(within quoted form)
29−
30−Examples
31−--------
32−
33− ~zod/try=>
34− =+ c="contents!"
35− ;div: -{c}
36− [[%div ~] [[%~. [%~. "contents!"] ~] ~] ~]
37− ~zod/try=>
38− %- poxo
39− =+ c="contents!"
40− ;div: -{c}
41− "<div>contents!</div>"
42−
43−Here we add `c` to our context as a `++tape`, and interpolate it within
44−our `;div` using the irregular form of `;-`. By using [`++poxo`]() we
45−can see our result in XML form.
docs/system/hoon/runes/sm/smls.mddeleted−48
@@ -1,48 +0,0 @@
1−`;+ semlus`
2−====
3−
4−Interpolate `++manx`.
5−
6−`;+` is a virtual rune used within [`++sail`]() to interpolate a manx.
7−`;+` is useful when you need to dynamically produce a tag in a `++sail`
8−block.
9−
10−Produces
11−--------
12−
13−Twig: [`++manx`]()
14−
15−Sample
16−------
17−
18−`p` is a twig
19−
20−Tall form
21−---------
22−
23− ;+ a
24−
25−Wide form
26−---------
27−
28− +{a}
29−
30−(within quoted form)
31−
32−Examples
33−--------
34−
35− ~zod/try=>
36− =+ tag=;p(class "doc")
37− ;div ;+ tag
38− ==
39− [[%div ~] [[%p [%class "doc"] ~] ~] ~]
40− ~zod/try=>
41− %- poxo
42− =+ tag=;p(class "doc")
43− ;div ;+ tag
44− ==
45− "<div><p class="doc"></p></div>"
46−
47−Here we add `tag` to our context as a `;p` tag and use `;+` to add it to
48−our `;div`. Using [`++poxo`]() we can print our result as XML.
docs/system/hoon/runes/sm/smsg.md+4−28
@@ -1,36 +1,12 @@
1−`;~ semsig`
2−====
1+# `:dip`, `;~`, "semsig" `{$dip p/twig q/(list twig)}`
32
43Monad composer.
54
6−`;~` is a synthetic rune used to compose functions under a monad.
5+Composes a list of functions `p` and `q` under a monad. `q` can be 1 or more functions.
76
8−Produces
9−--------
7+Regular form: 1-fixed, `q` is *running*
108
11−Twig: `[%smsg p=(list beer)]`
12−
13−Accepts
14−-------
15−
16−`p` is a [`++list`]() of [`++beer`]().
17−
18−Tall form
19−---------
20−
21− ;~ p
22− i.q
23− i.t.q
24− i.t.t.q
25− ==
26−
27−Wide form
28−---------
29−
30− ;~(p i.q i.t.q i.t.t.q)
31−
32−Examples
33−--------
9+Examples:
3410
3511 ~zod/try=> =cmp |=([a=tape b=$+(char tape)] `tape`?~(a ~ (weld (b i.a) t.a)))
3612 ~zod/try=> ;~(cmp trip)
docs/system/hoon/runes/sm/smsm.md+4−33
@@ -1,40 +1,11 @@
1−`;; semsem`
2−====
1+# `:fry`, `;;`, "semsem" `{$fry p/twig q/twig}`
32
43Fixpoint.
54
6−`;;` is a synthetic rune that types `q` as a fixpoint of `p`. More
7−specifically, `;;` slams `q` through gate `p`, asserting that the
8−resulting noun [`.=`]() the original, and produces it.
5+Slams `q` through gate `p`, asserting that the
6+resulting noun is equal to `.=` the original, and produces it.
97
10−See also
11−--------
12−
13−[`++hard`]()
14−
15−Produces
16−--------
17−
18−Twig: `[%smsm p=twig q=twig]`
19−
20−Accepts
21−-------
22−
23−`p` is a [`++twig`](). `q` is a twig.
24−
25−Tall form
26−---------
27−
28− ;; p
29− q
30−
31−Wide form
32−---------
33−
34− ;;(p q)
35−
36−Examples
37−--------
8+Examples: XX Review closely
389
3910 ~zod/try=> ^-(tape ~[97 98 99])
4011 ! type-fail
docs/system/hoon/runes/sm/smtr.mddeleted−50
@@ -1,50 +0,0 @@
1−`;* semtar`
2−===========
3−
4−Interpolate list of XML nodes.
5−
6−Interpolates a list of XML nodes within our XML template syntax (aka sail)
7−
8−Produces
9−--------
10−
11−Twig: [`++marl`]()
12−
13−Accepts
14−-------
15−
16−`p` is a [`++twig`]()
17−
18−Tall form
19−---------
20−
21− ;* a
22−
23−Wide form
24−---------
25−
26− *{a}
27−
28−(within quoted form)
29−
30−Examples
31−--------
32−
33− ~zod/try=> ;div ;* ~[;hi; ;p;]
34− ==
35− [[%div ~] [[%hi ~] ~] [[%p ~] ~] ~]
36− ~zod/try=> ;div:"*{~[;hi; ;p;]}"
37− [[%div ~] [[%hi ~] ~] [[%p ~] ~] ~]
38− ~zod/try=> ;div:"a*{~[;hi; ;p;]}b"
39− [ [%div ~]
40− [[%~. [%~. "a"] ~] ~]
41− [[%hi ~] ~]
42− [[%p ~] ~]
43− [[%~. [%~. "b"] ~] ~]
44− ~
45− ]
46− ~zod/try=> (poxo ;div:"a*{~[;hi; ;p;]}b")
47− "<div>a<hi></hi><p></p>b</div>"
48−
49−Here we use the tall, wide and irregular forms of `;*` to interpolate a
50−list of `++marl` into our containing [`++manx`]() `;div`.
docs/system/hoon/runes/sm/smzz.mddeleted−79
@@ -1,79 +0,0 @@
1−`semzaz`
2−========
3−
4−`++sail` tag.
5−
6−`semzaz`, is a virtual rune frequently referred to as [`++sail`]() in
7−reference to `++sail`:vast which parses it. It is the most basic part of
8−the templating structure frequently used to produce [`++manx`](). In its
9−simplest and most common form we see `semzaz` as
10−`;tagname(property1 "value1", property2 "value2")`.
11−
12−Produces
13−--------
14−
15−[`++twig`]()
16−
17−Accepts
18−-------
19−
20−`p` is a [`++mane`](), `q` is a list of pairs of mane to twig producing a
21−tape, `r` is a list of twigs producing manx.
22−
23−Tall form
24−---------
25−
26− ;p
27− i.r
28− i.t.r
29− ==
30−
31− ;p
32− =p.i.q q.i.q
33− =p.i.t.q q.i.t.q
34− i.r
35− i.t.r
36− ==
37−
38− ;p(p.i.q q.i.q, p.i.t.q q.i.t.q)
39− i.r
40− i.t.r
41− ==
42−
43−Wide form
44−---------
45−
46− ;p;
47−
48− ;p:(i.r i.t.r i.t.t.r)
49−
50− ;p(p.i.q q.i.q, p.i.t.q q.i.t.q):"{...}"
51−
52− ;p(p.i.q q.i.q, p.i.t.q q.i.t.q):(i.r i.t.r i.t.t.r)
53−
54− ;p(p.i.q q.i.q, p.i.t.q q.i.t.q):"{...}"
55−
56−Within quoted form,
57−
58− `;{p}`, `{p i.r i.t.r}`, `;{p(p.i.q q.i.q, p.i.t.q q.i.t.q) i.r i.t.r}`
59−
60−Examples
61−--------
62−
63− ~zod/try=> ;html ;head;
64− ;body;
65− ==
66− [[%html ~] [[%head ~] ~] [[%body ~] ~] ~]
67− ~zod/try=> ;html:(head body)
68− [[%html ~] [[%head ~] ~] [[%body ~] ~] ~]
69− ~zod/try=> ;html:";{head meta(charset "utf-8")};{body p p}"
70− [ [%html ~]
71− [[%head ~] [[%meta [%charset "utf-8"] ~] ~] ~]
72− [[%body ~] [[%p ~] ~] [[%p ~] ~] ~]
73− ~
74− ]
75− ~zod/try=> (poxo ;html:";{head meta(charset "utf-8")};{body p p}")
76− "<html><head><meta charset="utf-8"></meta></head><body><p></p><p></p></body></html>"
77−
78−Here we create the most basic HTML structure using nested `semzaz`, and
79−eventually print it properly using [`++poxo`]().
docs/system/hoon/runes/ts/.tsbr.md.swpnew file

Binary file not shown.

docs/system/hoon/runes/ts/.tscl.md.swpnew file

Binary file not shown.

docs/system/hoon/runes/ts/.tsdt.md.swpnew file

Binary file not shown.

docs/system/hoon/runes/ts/.tsgl.md.swpnew file

Binary file not shown.

docs/system/hoon/runes/ts/.tsgr.md.swpnew file

Binary file not shown.

docs/system/hoon/runes/ts/.tshp.md.swpnew file

Binary file not shown.

docs/system/hoon/runes/ts/.tskt.md.swpnew file

Binary file not shown.

docs/system/hoon/runes/ts/.tsls.md.swpnew file

Binary file not shown.

docs/system/hoon/runes/ts/.tssg.md.swpnew file

Binary file not shown.

docs/system/hoon/runes/ts/.tstr.md.swpnew file

Binary file not shown.

docs/system/hoon/runes/ts/tsbr.md+6−7
@@ -1,5 +1,4 @@
1−`=| tisbar`
2−====
1+# `:new`, `=|`, "tisbar", `{$new p/twig q/twig}`
32
43Default value.
54
@@ -7,7 +6,7 @@ Produces the default value of input type (aka mold) `p` and makes it
76available/pushes it onto `q`.
87
98
10−`=|` is a synthetic rune that pushes the [bunt](), or default value, of
9+`=|` is a synthetic rune that pushes the bunt, or default value, of
1110`p` on the subject and sends it to `q`.
1211
1312Produces
@@ -18,7 +17,7 @@ Twig: `[%tsbr p=mold q=twig]`
1817Accepts
1918-------
2019
21−`p` is a [mold](). `q` is a [twig]().
20+`p` is a mold. `q` is a twig.
2221
2322Tall form
2423---------
@@ -34,16 +33,16 @@ Wide form
3433Examples
3534--------
3635
37− ~zod/try=> =|(a=@p a)
36+ ~zod/try=> =|(a/@p a)
3837 ~zod
3938
4039Here we use `=|` to generate the default value of a `@p`, which is
4140`~zod`.
4241
4342 /~zod/try=>
44− =| a=[b=@ c=@]
43+ =| a=[b/@ c/@]
4544 [+(b.a) +(+(c.a))]
4645 [1 2]
4746
48−Here we add the bunt of `a=[b=@ c=@]` and perform a very basic operation
47+Here we add the bunt of `a/[b/@ c/@]` and perform a very basic operation
4948on it.
docs/system/hoon/runes/ts/tscl.md+4−29
@@ -1,38 +1,13 @@
1−`=: tiscol`
2−====
1+# `:fix`, `=:`, "tiscol", `{$fix p/(list (pair wing twig)) q/twig}`
32
43List of changes.
54
65Makes a list of changes `p` to the subject and then evaluates `q`.
7−Allows you to change values in your context (not in the hoon sense).
6+Useful when you need to make a batch of changes to your subject.
87
8+Regular form: *jogging*
99
10−`=:` is a synthetic rune that produces `q` with the subject modified by
11−the list of changes in `p` which must be terminated by a `==`. `=:` is
12−useful when you need to make a batch of changes to your subject.
13−
14−Produces
15−--------
16−
17−Twig: `[%tscl p=tram q=twig]`
18−
19−Accepts
20−-------
21−
22−`p` is a [`++tram`](), a list of [`++wing`]()s and twigs. `q` is a
23−[twig]().
24−
25−Tall form
26−---------
27−
28− =: p.i.p q.i.p
29− p.i.t.p q.i.t.p
30− p.i.t.t.p q.i.t.t.p
31− ==
32− q
33−
34−Examples
35−--------
10+Examples:
3611
3712 ~zod/try=> =+ a=[b=1 c=2]
3813 =: c.a 4
docs/system/hoon/runes/ts/tsdt.md+2−35
@@ -1,46 +1,13 @@
11`=. tisdot`
2−====
32
43Change value.
54
65Produces `r` with `p` in the subject set to `q`. Allows you to change
76a value in your subject before executing more code against it.
87
8+Regular form: *3-fixed*
99
10−`=.` is a synthetic rune that produces `r` with `p` in the subject set
11−to `q`.
12−
13−Produces
14−--------
15−
16−Twig: `[%tsdt p=wing q=twig r=twig]`
17−
18−Accepts
19−-------
20−
21−`p` is a [`wing`](). `q` and `r` are [`twig`]()s.
22−
23−Tall form
24−---------
25−
26−Kingside:
27−
28− =. p
29− q
30− r
31−
32−Queenside:
33−
34− =. p q
35− r
36−
37−Wide form
38−---------
39−
40− =.(p q r)
41−
42−Examples
43−--------
10+Examples:
4411
4512 ~zod/try=> =+ a=[b=1 c=2]
4613 =. b.a 3
docs/system/hoon/runes/ts/tsgl.md+7−37
@@ -1,45 +1,15 @@
1−`=< tisgal`
2−====
1+# `:rap`, `=<`, "tisgal" `{$rap p/twig q/twig}`
32
4−Inverted `=>`.
3+Inverted `=>`: `q` as subject of `p`.
54
6−An inverted `=>`. Uses the product of `q` as the subject of formula
5+Uses the product of `q` as the subject of formula
76`p`. Allows us to keep the heavier of `p` `q` as the bottom expression, which
8−makes for more readable code. Please see the section on [backstep]().
7+makes for more readable code. Please see the syntax section for more detail.
98
9+Regular form: *2-fixed*
1010
11−`=<` is a synthetic rune that uses the product of `q` as the subject of
12−`p`. `=<` is the inverse of `=>`. Use `=<` when your computation, `q` is
13−lengthier and `=<` makes for more readable code.
11+Examples:
1412
15−Produces
16−--------
17−
18−Twig: `[%tsgl p=twig q=twig]`
19−
20−Accepts
21−-------
22−
23−`p` and `q` are [twig]()s.
24−
25−Tall form
26−---------
27−
28− =< p
29− q
30−
31−Wide form
32−---------
33−
34− =<(p q)
35−
36−Irregular form
37−--------------
38−
39− p:q
40−
41−Examples
42−--------
4313
4414 ~zod/try=> b:[a=1 b=2 c=3]
4515 2
@@ -59,4 +29,4 @@ produce our context from the computation `(add 2 4)` as a cell, `[6 6]`.
5929
6030This example is a more common case, where we want to pull some specific
6131value out of a longer computation. Here we use the tall form of `=<` to
62−pull the arm `lom` from the core created with [`|%`]().
32+pull the arm `lom` from the core created with `|%`.
docs/system/hoon/runes/ts/tsgr.md+7−28
@@ -1,35 +1,14 @@
1−`=> tisgar`
2−====
1+# `:per`, `=>`, "tisgar" `{$per p/twig q/twig}`
32
4−Product as subject.
3+`p` as subject of `q`.
54
6−`=>` is a natural rune that uses the product of `p` as the subject of
7−`q`. `=>` is the inverse of `=<`. Use `=>` when your `p` isn't too long
8−and `=>` makes for more readable code.
5+Uses the product of `p` as the subject of formula `q`. For code readability,
6+use `=>` when your `p` isn't as long as `q`, and `=<` when `q` is longer than
7+`p`.
98
10−Produces
11−--------
9+Regular form: *2-fixed*
1210
13−Twig: `[%tsgr p=twig q=twig]`
14−
15−Accepts
16−-------
17−
18−`p` and `q` are [twig]()s.
19−
20−Tall form
21−---------
22−
23− => p
24− q
25−
26−Wide form
27−---------
28−
29− =>(p q)
30−
31−Examples
32−--------
11+Examples:
3312
3413 ~zod/try=> =>([a=1 b=2 c=3] b)
3514 2
docs/system/hoon/runes/ts/tshp.md+6−32
@@ -1,41 +1,15 @@
1−`=- tishep`
2−====
1+# `:nip`, `=-`, "tishep" `{$nip p/twig q/twig}`
32
43Inverted `=+`.
54
6−An inverted `=+`. Pushes variable `q` onto the subject and then
5+Pushes variable `q` onto the subject and then
76executes `p` against the new subject. Allows us to place the larger of `p` and
87`q` as the bottom expression, making for for more readable code (see the
9−section on [backstep]()).
8+section on backstep in the syntax section).
109
10+Regular form: *2-fixed*
1111
12−`=-` is a synthetic rune that pushes `q` on the subject and sends it to
13−`p`. `=-` is the inverse of `=+`. Use `=-` when your computation, `q` is
14−lengthier and `=-` makes for more readable code.
15−
16−Produces
17−--------
18−
19−Twig: `[%tshp p=twig q=twig]`
20−
21−Accepts
22−-------
23−
24−`p` and `q` are [twig]()s.
25−
26−Tall form
27−---------
28−
29− =- p
30− q
31−
32−Wide form
33−---------
34−
35− =-(p q)
36−
37−Examples
38−--------
12+Examples:
3913
4014 ~zod/try=> =- [%a a]
4115 [a=1]
@@ -46,7 +20,7 @@ In this simple example we push `[a=1]` on to our subject, and produce
4620`[%a 1]`.
4721
4822 ~zod/try=>
49− =cor |= [a=@ b=@]
23+ =cor |= [a/@ b/@]
5024 =- [[%a a] [%b b]]
5125 [a b]=[(add a 2) (add a b)]
5226 new var %cor
docs/system/hoon/runes/ts/tskt.md+7−44
@@ -1,52 +1,15 @@
1−`=^ tisket`
1+# `:sip`, `=^`, "tisket" `{$sip p/taco q/wing r/twig s/twig}`
22====
33
4−State monad.
4+State monad: push a new variable on the subject, change value of another.
55
6−Used to both push a new variable on the subject as well as change the
7−value of another. Similar to `=+` in that it pushes a value on the stack with
8−variable name (face) `p`. However, in addition to pushing a new variable onto
9−the subject, it also modifies whatever value is tied to `q` within the subject.
10−`r` is the cell of [new-product-p updated-value-1]. You can think of `=^` like
11−a state monad.
6+Similar to `=+` in that it pushes a value `q` on the stack with
7+face (variable name) `p`. It then modifies the new value of `q` within the subject.
8+`r` is the cell of [new-product-p updated-value-1].
129
10+Regular form: *2-fixed*
1311
14−`=^` is a synthetic rune that handles a product which is a cell of a new
15−result, and a mutation to the subject.
16−
17−Produces
18−--------
19−
20−Twig: `[%tskt p=twig q=twig r=twig s=twig]`
21−
22−Accepts
23−-------
24−
25−`p`, `q`, `r` and `s` are [twig]()s.
26−
27−Tall form
28−---------
29−
30−Kingside:
31−
32− =^ p
33− q
34− r
35− s
36−
37−Queenside:
38−
39− =^ p q
40− r
41− s
42−
43−Wide form
44−---------
45−
46− =^(p q r s)
47−
48−Examples
49−--------
12+Examples:
5013
5114 > =+ rng=~(. og 0wrando.mseed.12345)
5215 =^ r1 rng (rads:rng 100)
docs/system/hoon/runes/ts/tsls.md+5−33
@@ -1,39 +1,11 @@
1−`=+ tislus`
2−====
1+# `:pin`, `=+`, "tislus" `{$pin p/twig q/twig}`
32
4−Assign.
3+Push variable onto the subject.
54
6−Easiest way to declare variables. Pushes a new variable `p` onto the
7−subject and then executes `q` against it.
5+Pushes a new variable `p` onto the subject and then executes `q` against it.
6+Can use `$=` to put an optional face (variable name) on the value.
87
9−
10−`=+` is a synthetic rune that pushes `p` on the subject and sends it to
11−`q`. `=+` is the inverse of `=-`. Use `=+` when your `p` isn't too long
12−and `=+` makes for more readable code.
13−
14−Produces
15−--------
16−
17−Twig: `[%tsls p=twig q=twig]`
18−
19−Accepts
20−-------
21−
22−`p` and `q` are [twig]()s.
23−
24−Tall form
25−---------
26−
27− =+ p
28− q
29−
30−Wide form
31−---------
32−
33− =+(p q)
34−
35−Examples
36−--------
8+Examples:
379
3810 ~zod/try=>
3911 =+ a=1
docs/system/hoon/runes/ts/tssg.md+3−34
@@ -1,4 +1,4 @@
1−`=~ tissig`
1+# `:tow`, `=~`, "tissig" `{$tow p/(list twig)}`
22====
33
44List of twigs.
@@ -6,40 +6,9 @@ List of twigs.
66Composes a list of twigs. Applies `=>` to a list of expressions, using each result as the
77subject to the following expression.
88
9−Produces
10−--------
9+Regularm form: *running*
1110
12−Twig: `[%tssg p=tusk]`
13−
14−Sample
15−------
16−
17−`p` is a [`++tusk`](), a list of [twig]()s.
18−
19−Tall form
20−---------
21−
22− =~ i.p
23− i.t.p
24− i.t.t.p
25− ==
26−
27−Queenside:
28−
29− =~ i.p
30− i.t.p
31− i.t.t.p
32− ==
33−
34−
35−Wide form
36−---------
37−
38− =~(i.p i.t.p i.t.t.p)
39−
40−
41−Examples
42−--------
11+Examples:
4312
4413 ~zod/try=> =~(1 +(.) +(.))
4514 3
docs/system/hoon/runes/ts/tstr.md+3−29
@@ -1,37 +1,11 @@
1−`=* tistar`
2−====
1+# `:aka`, `=*`, "tistar" `{$aka p/term q/twig r/twig}`
32
43Alias.
54
6−Makes `p` an alias of value `q`. Useful when you don't want to write
5+Makes `p` an alias of value `q`, producing a `%bull`, the alias type. Useful when you don't want to write
76out a long address multiple times, for example `p.s.+.variable`, which translates to `p` within `s` within the tail of `variable`.
87
9−
10−`=*` is a natural rune that creates a `%bull`, or alias, type.
11−
12−Produces
13−--------
14−
15−Twig: `[%tstr p=term q=wing r=twig]`
16−
17−Accepts
18−-------
19−
20−`p` is a [`term`](). `q` is a [`++wing`](). `r` is a [twig]().
21−
22−Tall form
23−---------
24−
25− =* p q
26− r
27−
28−Wide form
29−---------
30−
31− =*(p q r)
32−
33−Examples
34−--------
8+Examples:
359
3610 ~zod/try=>
3711 =+ a=1