@@ -45,13 +45,11 @@ with the following commands:
4545>=
4646```
4747
48−<blockquote class="blockquote">
49−There is currently a bug where the `%argument` lines are
50−printed *above* the line you entered, so your output may not
51−look exactly like this.
52−`>=` means that a command was successfully received and
53−executed.
54−</blockquote>
48+> There is currently a bug where the `%argument` lines are
49+> printed *above* the line you entered, so your output may not
50+> look exactly like this.
51+> `>=` means that a command was successfully received and
52+> executed.
5553
5654Most of the app code should be simple enough to guess its
5755function. The important part of this code is the definition of
@@ -61,10 +59,10 @@ Once an app starts, it's always running in the background and you
6159interact with it by sending it messages. The most
6260straightforward way to do that is to poke it from the command
6361line, which we we did with `:echo 5` (`:[app-name]
64−[argument(s)]).
62+[argument(s)]`).
6563
6664In this case, `++poke-noun` takes an argument `arg` and prints it
67−out with `~&`. This is an unusual rune that formally "does
65+out with `~&` (sigpam). This is an unusual rune that formally "does
6866nothing", but the interpreter detects it and printfs the first
6967child, before executing the second as if the first didn't exist.
7068This is a slightly hacky way of printing to the console, but
@@ -87,7 +85,7 @@ line).
8785The second thing `++poke-noun` produces is our state. `+>.$`
8886refers to a particular address in our subject where our formal
8987app state is stored. It'll become clear why this is later on,
90−but for now pretend that `+>.$` is a magic invocation that means
88+but for now pretend that `+>.$` is a magic incantation that means
9189"app state".
9290
9391Let's look at another example (edit your code in `/app/examples/echo/hoon` to reflect the code below). Say we want to only accept a
@@ -121,10 +119,10 @@ have conversion routines to other marks, and some have diff,
121119patch, and merge algorithms. None of these are required for a
122120mark to exist, however.
123121
124−`noun` and `atom` are two of dozens of predefined marks (that will
125−already be in your `/mar` directory), and the
126−user may add more at will. The type associated with `noun` is
127−`*`, and the type associated with `atom` is `@`.
122+`noun` and `atom` are two predefined marks. In your `/mar`
123+directory, there are already many more, and you may add more
124+at will. The type associated with `noun` is `*`, and the type
125+associated with `atom` is `@`.
128126
129127When we poke an app from anywhere, we do so with a mark that
130128searches for the corresponding (`++poke-[mark]`) arm. Data
@@ -146,7 +144,7 @@ gall: %square: no poke arm for noun
146144> Recall the bug where `%square` may get printed above the input
147145> line.
148146
149−Marks are powerful, and they're the backbone of urbit's data
147+Marks are powerful, and they're the backbone of Urbit's data
150148pipeline, so we'll be getting quite used to them.
151149
152150**Exercise**:
@@ -154,7 +152,7 @@ pipeline, so we'll be getting quite used to them.
154152- Write an app that computes fizzbuzz on its input (as in the
155153 previous section).
156154
157−# Sending a message to another ship
155+# Sending a message to another urbit
158156
159157Let's write our first network message! Here's `/app/examples/pong.hoon`:
160158
@@ -191,8 +189,8 @@ Run it with these commands:
191189```
192190
193191Replace `~sampel-sipnym` with another urbit. The easiest thing to
194−do is to start a moon, a sub-identity of your urbit. If you don't know how to start a moon, see [the user admin section](/docs/using/admin/) Don't
195−forget to start the `%examples-pong` app on that urbit too. You should
192+do is to start a moon, a sub-identity of your urbit. If you don't know how to start a moon, see [the user admin section](/docs/using/admin/). Don't
193+forget to start the `%examples-pong` app on that urbit, too. You should
196194see, on the foreign urbit, this output:
197195
198196```
@@ -200,11 +198,11 @@ see, on the foreign urbit, this output:
200198```
201199
202200Most of the code should be straightforward. In `++poke-atom`,
203−the only new thing is the expression `(@t arg)`. As we already
204−know, `@t` is the type of "cord" text strings. In Hoon, when types are called as functions, they serve as a validator function (called a "clam" in hoon) -- that is, a function whose domain is all nouns and range is the given type.
201+the only new thing is the expression `(@t arg)`, which is the type `@t` being called as a function with argument `arg`. As we already
202+know, `@t` is the type of "cord" text strings. In Hoon, when types are called as functions, they serve as a validator function called a "clam" -- that is, a function whose domain is all nouns, and range is the given type (in this case, `@t`).
205203
206−In simpler terms, if a validator function is passed a value that
207−falls within its type, that value is produced. Otherwise, it
204+In simpler terms, if a clam is passed a value of its own
205+type, it produces that value. Otherwise, it
208206produces the default value (aka the "bunt") of its type. Here we call
209207this `@t` function on the argument. This coerces the argument
210208to text, so that we can print it out prettily no matter what
@@ -289,8 +287,8 @@ Of course, we have to push a new layer onto our duct
289287before passing it along (or responding to it directly) anywhere. This
290288layer can have any data we want in it, but we don't need anything
291289specific here, so we just use the wire `/sending`
292−(`/elem1/elem2/elem n` is one syntax used to create `++path`s and
293−`++wire`s of n elements). If we were expecting a response (which
290+(`/elem1/elem2/elemN` is one syntax used to create `++path`s and
291+`++wire`s of N elements). If we were expecting a response (which
294292we're not), it would come back along the `/sending` wire, meaning
295293that the path `/sending` will be passed back to the response
296294handler as an argument. Although it's not required, it's
@@ -299,18 +297,16 @@ bug-handling purposes.
299297
300298##### Term (sys-call)
301299
302−Looking back at the general form of a move, there is a
303−`term`--which is text composed lowercase ascii and `-`, and has
304−the sign of `@tas`-- which in this case is `%poke`. This is the
305−name of the particular kind of move we're sending. If you think
306−of a move as a syscall (which you should), then this `term` is
307−the name of the syscall. Common ones include: `%poke`, to
308−message an app; `%warp`, to read from the filesystem; `%wait`, to
300+Each move also has a `term`, composed of lowercase ASCII and/or `-`.
301+This `term` has the sign `@tas`. In this case, out `term` is `%poke`,
302+which is the name of the particular kind of move we're sending.
303+You can always use `%poke` to message an app. Other common names
304+include `%warp`, to read from the filesystem; `%wait`, to
309305set a timer; and `%them`, to send an http request.
310306
311−The general form ends with `*` (a noun) since each type of move takes
307+The move ends with `*` (that is, any noun) since each type of move takes
312308different data. In our case, a `%poke` move takes a target
313−(urbit and app) and marked data and pokes the arm of the
309+(urbit and app) and marked data, then pokes the arm of the
314310corresponding mark on that app on that urbit
315311with that data. `[to-urbit-address %pong]` is the target urbit and app,
316312`%atom` is the mark`, and `'howdy'` is the data.
@@ -320,12 +316,10 @@ When arvo receives a `%poke` move, it calls the appropriate
320316between apps on the same urbit as for sending messages between
321317apps on different urbits.
322318
323−<blockquote class="blockquote">
324−We said earlier that we're not expecting a response. This is
325−not entirely true: the `++coup` is called when we receive
326−acknowledgment that the `++poke` was called. We don't do
327−anything with this information right now, but we could.
328−</blockquote>
319+> We said earlier that we're not expecting a response. This is
320+> not entirely true: the `++coup` is called when we receive
321+> acknowledgment that the `++poke` was called. We don't do
322+> anything with this information right now, but we could.
329323
330324**Exercises**:
331325
@@ -368,5 +362,6 @@ anything with this information right now, but we could.
368362%success
369363```
370364
371−- Put `even` and `odd` on two separate ships and pass the
372− messages over the network.
365+- Put `even` and `odd` on two separate urbits and pass the
366+ messages over the network. Post a link to a working solution
367+ in :talk to receive a cookie.