@@ -7,25 +7,44 @@
77
88# `%= "centis"`
99
10−`[%cnts p=wing q=(list (pair wing hoon))]`: resolve a wing with changes.
10+Resolve a wing with changes.
1111
12−## Produces
12+## Syntax
13+
14+Regular:
15+
16+```
17+%= a=wing
18+ b=wing c=hoon
19+ d=wing e=hoon
20+ ...
21+ f=wing g=hoon
22+==
23+```
1324
14−Product of resolution to `p`, modified by the change list `q`.
25+Irregular:
1526
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.
27+`foo(x 1, y 2, z 3)` is `%=(foo x 1, y 2, z 3)`.
1728
18−## Syntax
29+AST:
30+
31+```
32+[%cnts p=wing q=(list (pair wing hoon))]
33+```
34+
35+## Semantics
36+
37+A `%=` expression resolves a wing of the subject, but with changes made.
1938
20−Regular: *1-fixed*, then *jogging*.
39+If `a` resolves to a leg, a series of changes are made to wings of that leg (`b`, `d`, and `f` above are replaced with the respective products of `c`, `e`, and `g` above). The modified leg is returned.
2140
22−Irregular: `foo(x 1, y 2, z 3)` is `%=(foo x 1, y 2, z 3)`.
41+If `a` resolves to an arm, a series of changes are made to wings of the parent core of that arm. (Again, `b`, `d`, and `f` are replaced with the respective products of `c`, `e`, and `g`.) The arm is computed with the modified core as the subject, and the product is returned.
2342
2443## Discussion
2544
26−Note that `p` is a wing, not just any expression. Knowing that a function
27−call `(foo baz)` involves making `foo`, replacing its sample
28−at slot `+6` with `baz`, and resolving to the `$` limb, you might think
45+Note that `a` is a wing, not just any expression. Knowing that a function
46+call `(foo baz)` involves evaluating `foo`, replacing its sample
47+at slot `+6` with `baz`, and then resolving to the `$` limb, you might think
2948`(foo baz)` would mean `%=(foo +6 baz)`.
3049
3150But it's actually `=+(foo =>(%=(+2 +6 baz) $))`. Even if `foo` is