@@ -7,15 +7,13 @@
77
88# `%= "centis"`
99
10−`[%cnts p=wing q=(list (pair wing hoon))]`: take a wing with changes.
10+`[%cnts p=wing q=(list (pair wing hoon))]`: resolve a wing with changes.
1111
1212## Produces
1313
14−`p`, modified by the change list `q`.
14+Product of resolution to `p`, modified by the change list `q`.
1515
16−If `p` resolves to a leg, `q` is a list of changes to that leg.
17−If `p` resolves to an arm, `q` is a list of changes to the core
18−containing that arm. We compute the arm on the modified core.
16+If `p` resolves to a leg, `q` is a list of changes to that leg. The modified leg is returned. If `p` resolves to an arm, `q` is a list of changes to the core containing that arm. The arm is computed with the modified core as the subject, and the product is returned.
1917
2018## Syntax
2119
@@ -26,20 +24,21 @@ Irregular: `foo(x 1, y 2, z 3)` is `%=(foo x 1, y 2, z 3)`.
2624## Discussion
2725
2826Note that `p` is a wing, not just any expression. Knowing that a function
29−call `(foo bar)` involves making `foo`, replacing its sample
30−at slot `+6` with `bar`, and taking the `$` limb, you might think
31−`(foo bar)` would mean `%=(foo +6 bar)`.
27+call `(foo baz)` involves making `foo`, replacing its sample
28+at slot `+6` with `baz`, and resolving to the `$` limb, you might think
29+`(foo baz)` would mean `%=(foo +6 baz)`.
3230
33−But it's actually `=+(foo =>(%=(+2 +6 bar) $))`. Even if `foo` is
31+But it's actually `=+(foo =>(%=(+2 +6 baz) $))`. Even if `foo` is
3432a wing, we would just be mutating `+6` within the core that defines the
3533`foo` arm. Instead we want to modify the *product* of `foo` -- the gate
3634-- so we have to pin it into the subject.
3735
3836Here's that again in tall form:
37+
3938```
4039=+ foo
4140=> %= +2
42− +6 bar
41+ +6 baz
4342 ==
4443 $
4544```