urbit/base/pub/doc/hoon/runes/cn/cnts.md
Anton Dyudin 6cbb6b060d Revert "remove docs for demo", "remove odds and ends", "demo network", "DEMO ONLY: root beak as %demo.", "DEMO ONLY: don't show doznec flapping.", "Prinrtf."
This reverts commit 8e1e40d75b3ab15c194b6bf9570f3edc46e2de58.
This reverts commit f073c490f9fd7c5abc033af4857df92229877de7.
This reverts commit f187d2d7e01a54823f3e979af9bbd148b398e7e9.
This reverts commit bc272862a73cfce1b118586ca39d3a377d841f1b.
This reverts commit 30a397513f8890a3406dc7ab91c6e067e3bbfbbb.
This reverts commit 4fc6856fb50d88c20a0f533392ca606641c5f38f.

Conflicts:
	urb/urbit.pill
	urb/zod/base/lib/drum.hoon
2015-06-15 18:10:02 -07:00

1.4 KiB

centis, %=, %cnts

Evaluate with changes

%= is a natural hoon thatevaluates p with the changes specified in q. %= is used to change a batch of wings inside a ++wing all at once, ensuring that the product is type checked.

See also

%_

Produces

Twig: [%cnts p=wing q=tram]

Sample

p is a ++wing. q is a ++tram.

Tall form

%=  p
  p.i.q    q.i.q
  p.i.t.q  q.i.t.q
==

Wide form

%=(p p.i.q q.i.q, p.i.t.q q.i.t.q)

Irregular form

p(p.i.q q.i.q, p.i.t.q q.i.t.q)

Examples

/~zod/try=> =+  a=[p=5 q=6]
            a(p 2)
[p=2 q=6]

In this example we are using the irregular form of %= to replace p in a.

/~zod/try=> =+  a=[p=1 q=2 r=3 s=4]
    a(p 5, q 6, r 7, s 8)
[p=5 q=6 r=7 s=8]

Here we show how you can replace multiple faces at once. We start with a new a and replace all of its values with the irregular form of %=.

/~zod/try=> =+  step=0
            =+  leng=10
            =+  valu=0
            |-
                ?:  =(step leng)
                   valu
            $(valu (mul 2 valu), step +(step))
1.024

In this case we create a simple loop, using |-. To recurse, we use %= with $, the empty name — our |- — replacing our valu with (mul 2 valu) and step with +(step).