@@ -13,10 +13,10 @@ Here's `ape/sum.hoon`:
16−|_ [bowl state=@]
16+|_ [bowl state/@]
17++ poke-atom
17++ poke-atom
19− ^- [(list) _+>.$]
19+ ^- {(list) _+>.$}
20 ~& [%so-far (add state arg)]
20 ~& [%so-far (add state arg)]
21 [~ +>.$(state (add state arg))]
21 [~ +>.$(state (add state arg))]
@@ -41,8 +41,7 @@ how?
42The state is stored as the second thing in the `|_` line. In our
42The state is stored as the second thing in the `|_` line. In our
43case, it's simply an atom named `state`. We change it by
43case, it's simply an atom named `state`. We change it by
44−producing as our state not with (as before) `+>.$` but `+>.$(state (add state
45−arg))`. We've seen all these parts before, but you might not
44+producing as our state not with `+>.$` (as before), but with `+>.$(state (add state arg))`. We've seen all these parts before, but you might not
46recognize them.
45recognize them.
48Recall in the first chapter that we recursed with the expression
47Recall in the first chapter that we recursed with the expression
@@ -62,14 +61,13 @@ meaning that our state is an atom. Of course, `state` is just a
62name we're assigning to it, and you're free to use whatever name
61name we're assigning to it, and you're free to use whatever name
65−Two points you may be wondering about. Firstly, `bowl` is a set
66−of general global state that is managed by the system. It
64+There are at least two points you may be wondering about. First, `bowl` is a set of general global state that is managed by the system. It
67includes things like `now` (current time), `our` (our urbit
65includes things like `now` (current time), `our` (our urbit
68identity), and `eny` (256 bits of guaranteed-fresh entropy). For
66identity), and `eny` (256 bits of guaranteed-fresh entropy). For
69the full list of things in `++bowl`, search for `++ bowl` (note
67the full list of things in `++bowl`, search for `++ bowl` (note
70the double space) in `/arvo/zuse.hoon`.
68the double space) in `/arvo/zuse.hoon`.
72−> This is a very common technique in learning hoon. While some
70+> This is a very common technique in learning hoon. While
73> documentation exists, often the easiest way to learn about an
71> documentation exists, often the easiest way to learn about an
74> identifier you see in code is to search in `/arvo/zuse.hoon`
72> identifier you see in code is to search in `/arvo/zuse.hoon`
75> and `/arvo/hoon.hoon` for it. These are our two "standard
73> and `/arvo/hoon.hoon` for it. These are our two "standard
@@ -80,12 +78,12 @@ the double space) in `/arvo/zuse.hoon`.
80> /arvo microkernel), you can usually use the code and the
78> /arvo microkernel), you can usually use the code and the
81> comments as reference doc.
79> comments as reference doc.
83−The second point is that urbit needs no "serialize to disk" step.
81+The second thing is that urbit needs no "serialize to disk" step.
84Everything you produce in the app state is persistent across
82Everything you produce in the app state is persistent across
85calls to the app, restarts of the urbit, and even power failure.
83calls to the app, restarts of the urbit, and even power failure.
86If you want to write to the filesystem, you can, but it's not
84If you want to write to the filesystem, you can, but it's not
87needed for persistence. Urbit has transactional events, which
85needed for persistence. Urbit has transactional events, which
88−makes it an [ACID operating system](). Thus, you don't have to
86+makes it an [ACID operating system](https://en.wikipedia.org/wiki/ACID). Thus, you don't have to
89worry about persistence when programming in urbit or to ever go
87worry about persistence when programming in urbit or to ever go
90through the hassle of having to set up and write to a database.
88through the hassle of having to set up and write to a database.