on master help sign in
minor edits to the tis runes
addb6f6joshuareagan
docs/reference/rune/tis/ban.udon+1−1
@@ -11,7 +11,7 @@
11
11
12## Produces
12## Produces
13
13
14−`q`, evaluated with the product of `p` as its subject.
14+the product of `q`, with the product of `p` taken as the subject.
15
15
16## Syntax
16## Syntax
17
17
docs/reference/rune/tis/bar.udon+3−2
@@ -21,8 +21,9 @@ Regular: *2-fixed*.
21
21
22## Discussion
22## Discussion
23
23
24+The default (or 'bunt') value of `p` is pinned to the head of the subject. Usually `p` includes a name for ease of reference.
25+
24−`=|` "declares a variable" which is "uninitialized," presumably
26+Speaking more loosely, `=|` usually "declares a variable" which is "uninitialized," presumably because you'll set it in a loop or similar.
25−because you'll set it in a loop or similar.
26
27
27## Examples
28## Examples
28
29
docs/reference/rune/tis/col.udon+4
@@ -19,6 +19,10 @@
19
19
20Regular: *jogging*, then *1-fixed*.
20Regular: *jogging*, then *1-fixed*.
21
21
22+## Discussion
23+
24+This rune is like `=.`, but for modifying the values of multiple legs of the subject.
25+
22## Examples
26## Examples
23
27
24```
28```
docs/reference/rune/tis/com.udon+2−5
@@ -9,10 +9,7 @@
9
9
10`[%tscm p=hoon q=hoon]`: expose namespace
10`[%tscm p=hoon q=hoon]`: expose namespace
11
11
12−`p` evaluates to a noun with some namespace. From within `q` you may access `p`'s
13−names without a wing path (i.e., you can use face `b` rather than `b.p`), or without
14−invoking a core name when `p` is a core. This is especially useful for calling arms
15−from an imported library or for calling arms from an stdlib core repeatedly.
12+`p` evaluates to a noun with some namespace. From within `q` you may access `p`'s names without a wing path (i.e., you can use face `b` rather than `b.p`). This is especially useful for calling arms from an imported library core or for calling arms from a stdlib core repeatedly.
16
13
17## Syntax
14## Syntax
18
15
@@ -20,7 +17,7 @@ Regular: *2-fixed*.
20
17
21## Examples
18## Examples
22
19
23−With a core:
20+With an imported core:
24
21
25```
22```
26> (sum -7 --7)
23> (sum -7 --7)
docs/reference/rune/tis/dot.udon+2−3
@@ -21,9 +21,8 @@ Regular: *3-fixed*.
21
21
22## Discussion
22## Discussion
23
23
24−As usual, we are not actually mutating the subject, just creating
24+Technically the `=.` rune doesn't change the subject. It creates
25−a new subject with a changed value. Note that the mutation uses
26−[`%_` ("cencab")](../../cen/cab/), so the type doesn't change. Trying to change the value type results in a `nest-fail`.
25+a new subject just like the old one except for a changed value at `p`. Note that the mutation uses [`%_` ("cencab")](../../cen/cab/), so the type at `p` doesn't change. Trying to change the value type results in a `nest-fail`.
27
26
28## Examples
27## Examples
29
28
docs/reference/rune/tis/hep.udon+1−2
@@ -21,8 +21,7 @@ Regular: *2-fixed*.
21
21
22## Discussion
22## Discussion
23
23
24−`=-` looks better than `=+` when the expression you're pinning
24+`=-` is just like `=+` but its subexpressions are reversed. `=-` looks better than `=+` when the expression you're pinning to the subject is much smaller than the expression that uses it.
25−is much smaller than the expression that uses it.
26
25
27## Examples
26## Examples
28
27
docs/reference/rune/tis/ket.udon+5−3
@@ -22,10 +22,12 @@ Regular: *4-fixed*.
22
22
23## Discussion
23## Discussion
24
24
25+`p` is a new name (possibly with type annotation, e.g., `a=@`) of a value to be pinned to the subject. The value of `p` is the head of the product of `r`. `q` is given the value of the tail of `r`'s product. Then `s` is evaluated against this new subject.
26+
25−We use `=^` ("tisket" when we have a state machine with a function that
27+We generally use `=^` when we have a state machine with a function, `r`, that
26produces a cell, whose head is a result and whose tail is a new
28produces a cell, whose head is a result and whose tail is a new
27−state. We want to use the head as a new variable, and stuff the
29+state. The head value is given a new name `p`, and the
28−tail back into wherever we stored the old state.
30+tail is stuffed back into wherever we stored the old state, `q`.
29
31
30This may also remind you of Haskell's State monad.
32This may also remind you of Haskell's State monad.
31
33
docs/reference/rune/tis/led.udon+1−1
@@ -19,7 +19,7 @@
19
19
20Regular: *2-fixed*.
20Regular: *2-fixed*.
21
21
22−Irregular: `foo:bar` is `=<(foo bar)`.
22+Irregular: `foo:baz` is `=<(foo baz)`.
23
23
24## Discussion
24## Discussion
25
25
docs/reference/rune/tis/lus.udon+3−1
@@ -21,7 +21,9 @@ Regular: *2-fixed*.
21
21
22## Discussion
22## Discussion
23
23
24+The subject of the `=+` expression, call it `a`, becomes the cell `[p a]` for the evaluation of `q`. That is, `=+` 'pins a value', `p`, to the head of the subject.
25+
24−`=+` ("tislus") is the simplest way of "declaring a variable."
26+Loosely speaking, `=+` is the simplest way of "declaring a variable."
25
27
26## Examples
28## Examples
27
29
docs/reference/rune/tis/mic.udon+5−2
@@ -7,8 +7,7 @@
7
7
8# `=; "tismic"`
8# `=; "tismic"`
9
9
10−`[%tssm p=skin q=hoon r=hoon]`: combine a named and/or typed noun with the
10+`[%tssm p=skin q=hoon r=hoon]`: combine a named noun with the subject, possibly with type annotation; inverted order.
11−subject, inverted.
12
11
13## Expands to
12## Expands to
14
13
@@ -20,6 +19,10 @@ subject, inverted.
20
19
21Regular: *3-fixed*.
20Regular: *3-fixed*.
22
21
22+## Discussion
23+
24+`=;` is exactly like `=/` except that the order of its last two subexpressions is reversed.
25+
23## Examples
26## Examples
24
27
25```
28```
docs/reference/rune/tis/net.udon+4−5
@@ -7,18 +7,17 @@
7
7
8# `=/ "tisnet"`
8# `=/ "tisnet"`
9
9
10−`[%tsfs p=skin q=hoon r=hoon]`: combine a named and/or typed
10+`[%tsfs p=skin q=hoon r=hoon]`: combine a named noun with the subject, possibly with type annotation.
11−noun with the subject.
12
11
13## Expands to
12## Expands to
14
13
15−*if `p` is a symbol*, (e.g. `a`):
14+*if `p` is a name*, (e.g. `a`):
16
15
17```
16```
18=+(^=(p q) r)
17=+(^=(p q) r)
19```
18```
20
19
21−*if `p` is a symbol with a type* (e.g., `a=@`):
20+*if `p` is a name with a type* (e.g., `a=@`):
22
21
23```
22```
24=+(^-(p q) r)
23=+(^-(p q) r)
@@ -40,7 +39,7 @@ Regular: *3-fixed*.
40
39
41## Discussion
40## Discussion
42
41
43−`p` can be either a symbol or a symbol=type. If it's just a symbol,
42+`p` can be either a name or a name=type. If it's just a name,
44`=/` ("tisnet") "declares a type-inferred variable." If it has a type, `=/`
43`=/` ("tisnet") "declares a type-inferred variable." If it has a type, `=/`
45"declares a type-checked variable."
44"declares a type-checked variable."
46
45
docs/reference/rune/tis/sig.udon+6−1
@@ -20,6 +20,12 @@ Regular: *running*.
20## Examples
20## Examples
21
21
22```
22```
23+~zod:dojo> =~ [sub (mul 3 20) (add 10 20)]
24+ (sub +)
25+ +(.)
26+ ==
27+31
28+
23~zod:dojo> =foo =| n=@
29~zod:dojo> =foo =| n=@
24 =< =~ increment
30 =< =~ increment
25 increment
31 increment
@@ -28,7 +34,6 @@ Regular: *running*.
28 ==
34 ==
29 |%
35 |%
30 ++ increment
36 ++ increment
31− |-
32 ..increment(n +(n))
37 ..increment(n +(n))
33 --
38 --
34~zod:dojo> foo
39~zod:dojo> foo
docs/reference/rune/tis/tar.udon+1−3
@@ -19,9 +19,7 @@ Regular: *3-fixed*.
19
19
20## Discussion
20## Discussion
21
21
22−The difference between aliasing and pinning is that the subject
22+The difference between aliasing and pinning is that pinning changes the subject, but for aliasing the subject noun stays the same. The aliased expression, `q`, is recorded in the type information of `p`. `q` is calculated every time you use the `p` alias.
23−noun stays the same; the alias is just recorded in its type.
24−`q` is calculated every time you use the `p` alias.
25
23
26## Examples
24## Examples
27
25
docs/reference/rune/tis/wut.udon+1−1
@@ -7,7 +7,7 @@
7
7
8# `=? "tiswut"`
8# `=? "tiswut"`
9
9
10−`[$tswt p/wing q/hoon r/hoon s/hoon]`: conditionally change one leg in the subject.
10+`[$tswt p=wing q=hoon r=hoon s=hoon]`: conditionally change one leg in the subject.
11
11
12## Expands to
12## Expands to
13
13
docs/reference/rune/zap/gar.udon → docs/reference/rune/zap/ban.udonrenamed+1−1
@@ -11,7 +11,7 @@
11
11
12## Produces
12## Produces
13
13
14−A cell whose tail is `p`, and whose head is the static type of `p`.
14+A cell whose tail is the product of `p`, and whose head is the static type of `p`.
15
15
16## Syntax
16## Syntax
17
17
docs/reference/rune/zap/wut.udon+1−1
@@ -11,7 +11,7 @@
11## Produces
11## Produces
12
12
13`q`, if `p` is greater than or equal to the Hoon kelvin version.
13`q`, if `p` is greater than or equal to the Hoon kelvin version.
14−(Versions count down; the current version is 143.)
14+(Versions count down; the current version is 141.)
15
15
16## Syntax
16## Syntax
17
17