@@ -46,13 +46,11 @@ with the following commands:
4646>=
4747```
4848
49−<blockquote class="blockquote">
50−There is currently a bug where the `%argument` lines are
51−printed *above* the line you entered, so your output may not
52−look exactly like this.
53−`>=` means that a command was successfully received and
54−executed.
55−</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.
5654
5755Most of the app code should be simple enough to guess its
5856function. The important part of this code is the definition of
@@ -62,10 +60,10 @@ Once an app starts, it's always running in the background and you
6260interact with it by sending it messages. The most
6361straightforward way to do that is to poke it from the command
6462line, which we we did with `:echo 5` (`:[app-name]
65−[argument(s)]).
63+[argument(s)]`).
6664
6765In this case, `++poke-noun` takes an argument `arg` and prints it
68−out with `~&`. This is an unusual rune that formally "does
66+out with `~&` (sigpam). This is an unusual rune that formally "does
6967nothing", but the interpreter detects it and printfs the first
7068child, before executing the second as if the first didn't exist.
7169This is a slightly hacky way of printing to the console, but
@@ -88,7 +86,7 @@ line).
8886The second thing `++poke-noun` produces is our state. `+>.$`
8987refers to a particular address in our subject where our formal
9088app state is stored. It'll become clear why this is later on,
91−but for now pretend that `+>.$` is a magic invocation that means
89+but for now pretend that `+>.$` is a magic incantation that means
9290"app state".
9391
9492Let'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
@@ -122,10 +120,10 @@ have conversion routines to other marks, and some have diff,
122120patch, and merge algorithms. None of these are required for a
123121mark to exist, however.
124122
125−`noun` and `atom` are two of dozens of predefined marks (that will
126−already be in your `/mar` directory), and the
127−user may add more at will. The type associated with `noun` is
128−`*`, and the type associated with `atom` is `@`.
123+`noun` and `atom` are two predefined marks. In your `/mar`
124+directory, there are already many more, and you may add more
125+at will. The type associated with `noun` is `*`, and the type
126+associated with `atom` is `@`.
129127
130128When we poke an app from anywhere, we do so with a mark that
131129searches for the corresponding (`++poke-[mark]`) arm. Data
@@ -147,7 +145,7 @@ gall: %square: no poke arm for noun
147145> Recall the bug where `%square` may get printed above the input
148146> line.
149147
150−Marks are powerful, and they're the backbone of urbit's data
148+Marks are powerful, and they're the backbone of Urbit's data
151149pipeline, so we'll be getting quite used to them.
152150
153151**Exercise**:
@@ -155,7 +153,7 @@ pipeline, so we'll be getting quite used to them.
155153- Write an app that computes fizzbuzz on its input (as in the
156154 previous section).
157155
158−# Sending a message to another ship
156+# Sending a message to another urbit
159157
160158Let's write our first network message! Here's `/app/examples/pong.hoon`:
161159
@@ -192,8 +190,8 @@ Run it with these commands:
192190```
193191
194192Replace `~sampel-sipnym` with another urbit. The easiest thing to
195−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
196−forget to start the `%examples-pong` app on that urbit too. You should
193+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
194+forget to start the `%examples-pong` app on that urbit, too. You should
197195see, on the foreign urbit, this output:
198196
199197```
@@ -201,11 +199,11 @@ see, on the foreign urbit, this output:
201199```
202200
203201Most of the code should be straightforward. In `++poke-atom`,
204−the only new thing is the expression `(@t arg)`. As we already
205−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.
202+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
203+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`).
206204
207−In simpler terms, if a validator function is passed a value that
208−falls within its type, that value is produced. Otherwise, it
205+In simpler terms, if a clam is passed a value of its own
206+type, it produces that value. Otherwise, it
209207produces the default value (aka the "bunt") of its type. Here we call
210208this `@t` function on the argument. This coerces the argument
211209to text, so that we can print it out prettily no matter what
@@ -290,8 +288,8 @@ Of course, we have to push a new layer onto our duct
290288before passing it along (or responding to it directly) anywhere. This
291289layer can have any data we want in it, but we don't need anything
292290specific here, so we just use the wire `/sending`
293−(`/elem1/elem2/elem n` is one syntax used to create `++path`s and
294−`++wire`s of n elements). If we were expecting a response (which
291+(`/elem1/elem2/elemN` is one syntax used to create `++path`s and
292+`++wire`s of N elements). If we were expecting a response (which
295293we're not), it would come back along the `/sending` wire, meaning
296294that the path `/sending` will be passed back to the response
297295handler as an argument. Although it's not required, it's
@@ -300,18 +298,16 @@ bug-handling purposes.
300298
301299##### Term (sys-call)
302300
303−Looking back at the general form of a move, there is a
304−`term`--which is text composed lowercase ascii and `-`, and has
305−the sign of `@tas`-- which in this case is `%poke`. This is the
306−name of the particular kind of move we're sending. If you think
307−of a move as a syscall (which you should), then this `term` is
308−the name of the syscall. Common ones include: `%poke`, to
309−message an app; `%warp`, to read from the filesystem; `%wait`, to
301+Each move also has a `term`, composed of lowercase ASCII and/or `-`.
302+This `term` has the sign `@tas`. In this case, out `term` is `%poke`,
303+which is the name of the particular kind of move we're sending.
304+You can always use `%poke` to message an app. Other common names
305+include `%warp`, to read from the filesystem; `%wait`, to
310306set a timer; and `%them`, to send an http request.
311307
312−The general form ends with `*` (a noun) since each type of move takes
308+The move ends with `*` (that is, any noun) since each type of move takes
313309different data. In our case, a `%poke` move takes a target
314−(urbit and app) and marked data and pokes the arm of the
310+(urbit and app) and marked data, then pokes the arm of the
315311corresponding mark on that app on that urbit
316312with that data. `[to-urbit-address %pong]` is the target urbit and app,
317313`%atom` is the mark`, and `'howdy'` is the data.
@@ -321,12 +317,10 @@ When arvo receives a `%poke` move, it calls the appropriate
321317between apps on the same urbit as for sending messages between
322318apps on different urbits.
323319
324−<blockquote class="blockquote">
325−We said earlier that we're not expecting a response. This is
326−not entirely true: the `++coup` is called when we receive
327−acknowledgment that the `++poke` was called. We don't do
328−anything with this information right now, but we could.
329−</blockquote>
320+> We said earlier that we're not expecting a response. This is
321+> not entirely true: the `++coup` is called when we receive
322+> acknowledgment that the `++poke` was called. We don't do
323+> anything with this information right now, but we could.
330324
331325**Exercises**:
332326
@@ -369,5 +363,6 @@ anything with this information right now, but we could.
369363%success
370364```
371365
372−- Put `even` and `odd` on two separate ships and pass the
373− messages over the network.
366+- Put `even` and `odd` on two separate urbits and pass the
367+ messages over the network. Post a link to a working solution
368+ in :talk to receive a cookie.