diff --git a/lib/drum.hoon b/lib/drum.hoon index 3894dd95f8..66521e4df2 100644 --- a/lib/drum.hoon +++ b/lib/drum.hoon @@ -537,13 +537,11 @@ ?: =(0 (lent buf.say.inp)) ta-bel (ta-hom:ta-nex %set ~) - %l ?^ ris ta-bel - ?: =(0 pos.inp) ta-bel - +>(pos.inp (dec pos.inp)) - %r ?^ ris ta-bel - ?: =((lent buf.say.inp) pos.inp) + %l ?: =(0 pos.inp) ta-bel + +>(pos.inp (dec pos.inp), ris ~) + %r ?: =((lent buf.say.inp) pos.inp) ta-bel - +>(pos.inp +(pos.inp)) + +>(pos.inp +(pos.inp), ris ~) %u =. ris ~ ?:(=(0 pos.hit) ta-bel (ta-mov (dec pos.hit))) == @@ -584,7 +582,7 @@ |= key=@ud ^+ +> ?+ key ta-bel - %a +>(pos.inp 0) + %a +>(pos.inp 0, ris ~) %b (ta-aro %l) %c ta-bel(ris ~) %d ?: &(=(0 pos.inp) =(0 (lent buf.say.inp))) @@ -592,11 +590,12 @@ ta-del %e +>(pos.inp (lent buf.say.inp)) %f (ta-aro %r) - %g ta-bel(ris ~) + %g ?~ ris ta-bel + (ta-hom(pos.hit num.hit, ris ~) [%set ~]) %k =+ len=(lent buf.say.inp) ?: =(pos.inp len) ta-bel - %- ta-hom(kil `(slag pos.inp buf.say.inp)) + %- ta-hom(kil `(slag pos.inp buf.say.inp), ris ~) (ta-cut pos.inp (sub len pos.inp)) %l +>(+> (se-blit %clr ~)) %n (ta-aro %d) @@ -611,6 +610,7 @@ ta-bel =+ sop=?:(=(len pos.inp) (dec pos.inp) pos.inp) =. pos.inp +(sop) + =. ris ~ %- ta-hom :~ %mor [%del sop] @@ -618,12 +618,12 @@ == %u ?: =(0 pos.inp) ta-bel - %- ta-hom(kil `(scag pos.inp buf.say.inp)) + %- ta-hom(kil `(scag pos.inp buf.say.inp), ris ~) (ta-cut 0 pos.inp) %v ta-bel %x +>(+> se-anon) %y ?~ kil ta-bel - (ta-hom (ta-cat pos.inp u.kil)) + (ta-hom(ris ~) (ta-cat pos.inp u.kil)) == :: ++ ta-cru :: hear crud @@ -734,9 +734,9 @@ |= ext=(list ,@c) ^+ +> ?: |(?=(~ ris) =(0 pos.u.ris)) ta-bel + =+ sop=?~(ext (dec pos.u.ris) pos.u.ris) =+ tot=(weld str.u.ris ext) - =+ dol=(slag (sub num.hit pos.u.ris) old.hit) - =+ sop=pos.u.ris + =+ dol=(slag (sub num.hit sop) old.hit) =+ ^= ser =+ ^= beg |= [a=(list ,@c) b=(list ,@c)] ^- ? @@ -750,7 +750,7 @@ `sop $(sop (dec sop), dol t.dol) ?~ sup ta-bel - (ta-mov(str.u.ris tot, pos.u.ris (dec u.sup)) (dec u.sup)) + (ta-mov(str.u.ris tot, pos.u.ris u.sup) (dec u.sup)) :: ++ ta-tan :: print tanks |= tac=(list tank) diff --git a/pub/docs/dev/hoon/runes/br/brcn.md b/pub/docs/dev/hoon/runes/br/brcn.md index 59819a49d4..e384f537b9 100644 --- a/pub/docs/dev/hoon/runes/br/brcn.md +++ b/pub/docs/dev/hoon/runes/br/brcn.md @@ -62,7 +62,7 @@ Examples 101 Here we create a core with two arms `n`, a constant and `g`, a simple -funciton. `g` adds our constant `n` to whatever is passed to it. +function. `g` adds our constant `n` to whatever is passed to it. /~zod/try=> =a |% diff --git a/pub/docs/dev/hoon/tutorial/1-twigs.mdy b/pub/docs/dev/hoon/tutorial/1-twigs.mdy index 40d5a5c2db..2a6e798c35 100644 --- a/pub/docs/dev/hoon/tutorial/1-twigs.mdy +++ b/pub/docs/dev/hoon/tutorial/1-twigs.mdy @@ -247,8 +247,8 @@ the product of `test`. > You're probably used to name resolution in variable scopes and flat records, but not in trees. Partly this is because the -tradition in language design is to eschew semantics that make it -hard to build simple symbol tables, because linear search of a +tradition in language design is to prefer semantics that make it +easy to build simple symbol tables, because linear search of a nontrivial tree is a bad idea on '80s hardware. ## Mutation diff --git a/pub/docs/dev/hoon/tutorial/2-syntax.mdy b/pub/docs/dev/hoon/tutorial/2-syntax.mdy index dca69ce347..d588670f3f 100644 --- a/pub/docs/dev/hoon/tutorial/2-syntax.mdy +++ b/pub/docs/dev/hoon/tutorial/2-syntax.mdy @@ -198,7 +198,7 @@ A few digraphs also have irregular sounds: You might remember wondering where the "lark syntax" of chapter 1 got its name. Lark syntax is read in digraphs from the left, so -`+>+` is `darkgar`. +`+>+` is `darklus`. > `+>+` is of course `cdddr` in Lisp. @@ -378,7 +378,7 @@ to C: [%goodbye planet] ``` This is called "backstep" indentation. Not all the children of -`?:` ("wuttis", `%wtts`) are at the same indent as the parent; +`?:` ("wutcol", `%wtcl`) are at the same indent as the parent; but one of them is. It's not always the case when backstepping that the largest diff --git a/pub/docs/dev/hoon/tutorial/3-program.mdy b/pub/docs/dev/hoon/tutorial/3-program.mdy index 41c0f9f973..d282860162 100644 --- a/pub/docs/dev/hoon/tutorial/3-program.mdy +++ b/pub/docs/dev/hoon/tutorial/3-program.mdy @@ -51,11 +51,11 @@ We'll start by clearing the subject: => ~ [%hello %world] ``` -The `=>` rune ("tisran"), for `=>(p q)` executes `p` against +The `=>` rune ("tisgar"), for `=>(p q)` executes `p` against the subject, then uses that product as the subject of `q`. (We've already used an irregular form of `=>`, or to be more -precise its mirror `=<` ("tislit"). In chapter 1, when we wrote +precise its mirror `=<` ("tisgal"). In chapter 1, when we wrote `+3:test`, we meant `=>(test +3)` or `=<(+3 test)`.) What is this `~`? It's Hoon `nil`, a zero atom with this span: @@ -285,7 +285,7 @@ noun `[%dtts a b]`. Likewise, `+(a)` is `.+(a)`, ie, "dotlus" or `[%dtls a]`. `?:` is a regular rune which does exactly what you think it does. -Bear in mind, though, that in Hoon 0 (`&`, "rob") is true and 1 +Bear in mind, though, that in Hoon 0 (`&`, "pam") is true and 1 (`|`, "bar") is false. The real action is in `dec(pre +(pre))`. This is obviously an diff --git a/pub/docs/theory/whitepaper.mdy b/pub/docs/theory/whitepaper.mdy index 5624232845..81998123d5 100644 --- a/pub/docs/theory/whitepaper.mdy +++ b/pub/docs/theory/whitepaper.mdy @@ -2238,7 +2238,7 @@ From personal server to digital republic ---------------------------------------- Republics? Any global system needs a political design. Urbit is -designed as a a *digital republic*. +designed as a *digital republic*. The word *republic* is from Latin, "res publica" or "public thing." The essence of republican goverment is its