on master help sign in
hoon school reorg
commit33c69dec910b303a69f11720c242ca43e5d02a01 authorJONATHAN PAPROCKI <jon@tlon.io> dateThu 27 Aug 2020, 11:09 (6 years ago) parent52dc85e
54 files changed+59−59
glossary/arm.md+2−2 glossary/atom.md+2−2 glossary/battery.md+2−2 glossary/core.md+2−2 glossary/dojo.md+1−1 glossary/door.md+2−2 glossary/gall.md+2−2 glossary/gate.md+2−2 glossary/hoon.md+2−2 glossary/modulo.md+1−1 glossary/noun.md+2−2 glossary/payload.md+2−2 glossary/trap.md+2−2 tutorials/_index.md+1−1 tutorials/arvo/_index.md+1−1 tutorials/arvo/arvo.md+3−3 tutorials/arvo/behn.md+1−1 tutorials/arvo/cli-tutorial.md → tutorials/hoon/cli-tutorial.md+1−1 tutorials/hoon/_index.md → tutorials/hoon/hoon-school/_index.md+1−1 tutorials/hoon/ackermann.md → tutorials/hoon/hoon-school/ackermann.md tutorials/hoon/aqua.md → tutorials/hoon/hoon-school/aqua.md tutorials/hoon/arms-and-cores.md → tutorials/hoon/hoon-school/arms-and-cores.md+1−1 tutorials/hoon/atoms-auras-and-simple-cell-types.md → tutorials/hoon/hoon-school/atoms-auras-and-simple-cell-types.md+1−1 tutorials/hoon/bank-account.md → tutorials/hoon/hoon-school/bank-account.md tutorials/hoon/behn.md → tutorials/hoon/hoon-school/behn.md+1−1 tutorials/hoon/caesar.md → tutorials/hoon/hoon-school/caesar.md tutorials/hoon/conditionals.md → tutorials/hoon/hoon-school/conditionals.md+1−1 tutorials/hoon/doors.md → tutorials/hoon/hoon-school/doors.md+1−1 tutorials/hoon/egg-timer.md → tutorials/hoon/hoon-school/egg-timer.md tutorials/hoon/fibonacci.md → tutorials/hoon/hoon-school/fibonacci.md tutorials/hoon/gall.md → tutorials/hoon/hoon-school/gall.md tutorials/hoon/gates.md → tutorials/hoon/hoon-school/gates.md tutorials/hoon/generators.md → tutorials/hoon/hoon-school/generators.md tutorials/hoon/hoon-syntax.md → tutorials/hoon/hoon-school/hoon-syntax.md+7−7 tutorials/hoon/iron-polymorphism.md → tutorials/hoon/hoon-school/iron-polymorphism.md tutorials/hoon/lead-polymorphism.md → tutorials/hoon/hoon-school/lead-polymorphism.md tutorials/hoon/libraries.md → tutorials/hoon/hoon-school/libraries.md tutorials/hoon/list-of-numbers.md → tutorials/hoon/hoon-school/list-of-numbers.md tutorials/hoon/lists.md → tutorials/hoon/hoon-school/lists.md tutorials/hoon/molds.md → tutorials/hoon/hoon-school/molds.md+1−1 tutorials/hoon/nouns.md → tutorials/hoon/hoon-school/nouns.md+1−1 tutorials/hoon/recursion.md → tutorials/hoon/hoon-school/recursion.md tutorials/hoon/setup.md → tutorials/hoon/hoon-school/setup.md+2−2 tutorials/hoon/structures-and-complex-types.md → tutorials/hoon/hoon-school/structures-and-complex-types.md+1−1 tutorials/hoon/style.md → tutorials/hoon/hoon-school/style.md tutorials/hoon/the-subject-and-its-legs.md → tutorials/hoon/hoon-school/the-subject-and-its-legs.md+1−1 tutorials/hoon/trees-sets-and-maps.md → tutorials/hoon/hoon-school/trees-sets-and-maps.md tutorials/hoon/type-checking-and-type-inference.md → tutorials/hoon/hoon-school/type-checking-and-type-inference.md tutorials/hoon/type-polymorphism.md → tutorials/hoon/hoon-school/type-polymorphism.md+1−1 tutorials/arvo/parsing.md → tutorials/hoon/parsing.md+1−1 tutorials/hoon/workbook/_index.md+4−4 tutorials/hoon/workbook/digits.md+1−1 tutorials/hoon/workbook/eightball.md+1−1 tutorials/hoon/workbook/traffic-light.md+1−1
glossary/arm.md+2−2
@@ -10,5 +10,5 @@ An **arm** is a Hoon expression encoded as a noun. You can find them as part of
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/tutorials/hoon/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.7: Arms and Cores](@/docs/tutorials/hoon/arms-and-cores.md): A Hoon Tutorial lesson that discusses cores.
13+- [The Hoon Tutorial](@/docs/tutorials/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.7: Arms and Cores](@/docs/tutorials/hoon/hoon-school/arms-and-cores.md): A Hoon Tutorial lesson that discusses cores.
glossary/atom.md+2−2
@@ -15,6 +15,6 @@ number, etc, and an optional constant. A Hoon atom type is _warm_ or _cold_ base
1515
1616### Further Reading
1717
18−- [The Hoon Tutorial](@/docs/tutorials/hoon/_index.md): Our guide to learning the Hoon programming language.
19− - [Lesson 1.2: Nouns](@/docs/tutorials/hoon/nouns.md): A Hoon Tutoral lesson that explains how atoms work.
18+- [The Hoon Tutorial](@/docs/tutorials/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
19+ - [Lesson 1.2: Nouns](@/docs/tutorials/hoon/hoon-school/nouns.md): A Hoon Tutoral lesson that explains how atoms work.
2020- [The Nock explanation](@/docs/tutorials/nock/explanation.md): Includes an explanation of atoms.
glossary/battery.md+2−2
@@ -10,5 +10,5 @@ A **battery** is a collection of Hoon expressions and the head of a [core](../co
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/tutorials/hoon/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.7: Arms and Cores](@/docs/tutorials/hoon/arms-and-cores.md): A Hoon Tutorial lesson that discusses cores.
13+- [The Hoon Tutorial](@/docs/tutorials/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.7: Arms and Cores](@/docs/tutorials/hoon/hoon-school/arms-and-cores.md): A Hoon Tutorial lesson that discusses cores.
glossary/core.md+2−2
@@ -10,5 +10,5 @@ A **core** is a cell of a [battery](../battery) and a [payload](../payload). It
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/tutorials/hoon/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.7: Arms and Cores](@/docs/tutorials/hoon/arms-and-cores.md): A Hoon Tutorial lesson that discusses cores.
13+- [The Hoon Tutorial](@/docs/tutorials/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.7: Arms and Cores](@/docs/tutorials/hoon/hoon-school/arms-and-cores.md): A Hoon Tutorial lesson that discusses cores.
glossary/dojo.md+1−1
@@ -12,4 +12,4 @@ and [Chat](../chat) press Ctrl-X. The Dojo is the first thing you encounter afte
1212
1313### Further Reading
1414- [Using Your Ship](@/using/operations/using-your-ship.md): The "Shell" section contains instructions on using the Dojo.
15−- [Hoon Tutorial Lesson 1.1: Setup](@/docs/tutorials/hoon/setup.md): A great way to get started with using Hoon in the Dojo.
15+- [Hoon Tutorial Lesson 1.1: Setup](@/docs/tutorials/hoon/hoon-school/setup.md): A great way to get started with using Hoon in the Dojo.
glossary/door.md+2−2
@@ -10,5 +10,5 @@ A **door** is a [core](../core) the payload of which is a cell of sample and con
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/tutorials/hoon/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.8: Doors](@/docs/tutorials/hoon/doors.md): A Hoon Tutorial lesson that discusses doors.
13+- [The Hoon Tutorial](@/docs/tutorials/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.8: Doors](@/docs/tutorials/hoon/hoon-school/doors.md): A Hoon Tutorial lesson that discusses doors.
glossary/gall.md+2−2
@@ -12,6 +12,6 @@ Gall is located at `/home/sys/vane/gall.hoon` within Arvo.
1212
1313### Further Reading
1414
15−- [The Hoon Tutorial](@/docs/tutorials/hoon/_index.md): Our guide to learning the Hoon programming language that will give you the foundation necessary for app development.
16− - [Lesson 2.7: Gall](@/docs/tutorials/hoon/gall.md): A Hoon Tutorial lesson that explains how to write a simple Gall app.
15+- [The Hoon Tutorial](@/docs/tutorials/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language that will give you the foundation necessary for app development.
16+ - [Lesson 2.7: Gall](@/docs/tutorials/hoon/hoon-school/gall.md): A Hoon Tutorial lesson that explains how to write a simple Gall app.
1717- [The Gall tutorial](@/docs/tutorials/arvo/gall.md): A technical guide to the Gall vane.
glossary/gate.md+2−2
@@ -10,5 +10,5 @@ A **gate** is [core](../core) with one [arm](../arm) named $. They are often cal
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/tutorials/hoon/_index.md): Our guide to learning the Hoon programming language.
14−- [Lesson 1.4 Gates](@/docs/tutorials/hoon/gates.md): A Hoon tutorial lesson about gates.
13+- [The Hoon Tutorial](@/docs/tutorials/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14+- [Lesson 1.4 Gates](@/docs/tutorials/hoon/hoon-school/gates.md): A Hoon tutorial lesson about gates.
glossary/hoon.md+2−2
@@ -10,6 +10,6 @@ The Hoon source file is located in `/home/sys/hoon.hoon` within your Urbit.
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/tutorials/hoon/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.1: Setup](@/docs/tutorials/hoon/nouns.md): How to set up an environment for programming in Hoon.
13+- [The Hoon Tutorial](@/docs/tutorials/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.1: Setup](@/docs/tutorials/hoon/hoon-school/nouns.md): How to set up an environment for programming in Hoon.
1515- [Why Hoon?](@/blog/why-hoon.md): A blog post that explains why Urbit uses its own programming language.
glossary/modulo.md+1−1
@@ -10,5 +10,5 @@ category = "arvo"
1010
1111### Further Reading
1212
13−- [Lesson 2.7: Gall](@/docs/tutorials/hoon/gall.md): A Hoon Tutorial lesson that explains how to write simple tile.
13+- [Lesson 2.7: Gall](@/docs/tutorials/hoon/hoon-school/gall.md): A Hoon Tutorial lesson that explains how to write simple tile.
1414- [The Gall tutorial](@/docs/tutorials/arvo/gall.md): A technical guide to the Gall van.
glossary/noun.md+2−2
@@ -10,6 +10,6 @@ A **noun** is an [atom](../atom) or a cell, which is an ordered pair of nouns. T
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/tutorials/hoon/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.2: Nouns](@/docs/tutorials/hoon/nouns.md): A Hoon Tutoral lesson that explains how nouns work.
13+- [The Hoon Tutorial](@/docs/tutorials/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.2: Nouns](@/docs/tutorials/hoon/hoon-school/nouns.md): A Hoon Tutoral lesson that explains how nouns work.
1515- [The Nock explanation](@/docs/tutorials/nock/_index.md): Includes a low-level explanation of nouns.
glossary/payload.md+2−2
@@ -10,5 +10,5 @@ A **payload** is the set of data needed to run computations in a [core](../core)
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/tutorials/hoon/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.7: Arms and Cores](@/docs/tutorials/hoon/arms-and-cores.md): A Hoon Tutorial lesson that discusses cores.
13+- [The Hoon Tutorial](@/docs/tutorials/hoon/_hoon-school/index.md): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.7: Arms and Cores](@/docs/tutorials/hoon/hoon-school/arms-and-cores.md): A Hoon Tutorial lesson that discusses cores.
glossary/trap.md+2−2
@@ -10,5 +10,5 @@ A **trap** is a [core](../core) with one arm named $ and no sample. They are oft
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/tutorials/hoon/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.4.1: Walkthrough: Recursion](@/docs/tutorials/hoon/recursion.md): A Hoon Tutorial lesson that uses traps to build recursive functions.
13+- [The Hoon Tutorial](@/docs/tutorials/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.4.1: Walkthrough: Recursion](@/docs/tutorials/hoon/hoon-school/recursion.md): A Hoon Tutorial lesson that uses traps to build recursive functions.
tutorials/_index.md+1−1
@@ -12,7 +12,7 @@ Tutorials and explanations for all the components of Urbit.
1212
1313Arvo is a clean-slate system software stack defined as a deterministic computer. An encrypted P2P network, %ames, runs on a functional operating system, Arvo, written in a strict, typed functional language, Hoon, which compiles itself to a combinator interpreter, Nock, whose spec gzips to 340 bytes.
1414
15−## [Hoon Tutorial](@/docs/tutorials/hoon/_index.md)
15+## [Hoon Tutorial](@/docs/tutorials/hoon/hoon-school/_index.md)
1616
1717Hoon is a high-level, statically typed, functional programming language, custom-designed for use with Urbit. For a functional language it has a surprisingly imperative style, and mastering it doesn't require knowing any advanced mathematics. The Hoon Tutorial is the best place to start if you want to learn Urbit.
1818
tutorials/arvo/_index.md+1−1
@@ -8,7 +8,7 @@ aliases = ["/docs/learn/arvo/"]
88
99## [Arvo](@/docs/tutorials/arvo/arvo.md)
1010
11−Arvo is Urbit's functional operating system, written in [Hoon](@/docs/tutorials/hoon/_index.md). It's composed of modules called _vanes_:
11+Arvo is Urbit's functional operating system, written in [Hoon](@/docs/tutorials/hoon/hoon-school/_index.md). It's composed of modules called _vanes_:
1212
1313## Vanes
1414
tutorials/arvo/arvo.md+3−3
@@ -28,7 +28,7 @@ companion to this document, and some segments are direct quotes or paraphrases,
2828The conceptual section titled [What is Arvo?](#what-is-arvo-) can be understood
2929without knowing Hoon, the Urbit programming language. The technical section
3030titled [The kernel](#the-kernel) will require Chapter One of the [Hoon
31−tutorial](@/docs/tutorials/hoon/_index.md) for full understanding, and some
31+tutorial](@/docs/tutorials/hoon/hoon-school/_index.md) for full understanding, and some
3232material from Chapter Two will be helpful as well. At the bare minimum, we
3333presume that the reader has read through the [Technical
3434Overview](@/docs/tutorials/concepts/technical-overview.md).
@@ -249,7 +249,7 @@ cooperative multitasking.
249249
250250The Arvo kernel, stored in `sys/arvo.hoon`, is about 1k lines of Hoon whose primary purpose is to implement the transition function, `+poke`. In this section we point out the most important parts of `arvo.hoon` and describe their role in the greater system. We also give brief descriptions of Arvo's kernel modules, known as vanes, and how Arvo interfaces with them.
251251
252−This section requires an understanding of Hoon of at least the level of Chapter One of the [Hoon tutorial](@/docs/tutorials/hoon/_index.md).
252+This section requires an understanding of Hoon of at least the level of Chapter One of the [Hoon tutorial](@/docs/tutorials/hoon/hoon-school/_index.md).
253253
254254After concluding this section, the reader is encouraged to follow along with the
255255[move trace tutorial](@/docs/tutorials/arvo/move-trace.md),
@@ -265,7 +265,7 @@ which applies many of the concepts covered below.
265265 + Larval stage core
266266 + Formal interface
267267
268−See [Section 1.7](@/docs/tutorials/hoon/arms-and-cores.md) of the Hoon tutorial for further explanation of what is meant here by "nesting". We now describe the functionality of each of these components.
268+See [Section 1.7](@/docs/tutorials/hoon/hoon-school/arms-and-cores.md) of the Hoon tutorial for further explanation of what is meant here by "nesting". We now describe the functionality of each of these components.
269269
270270### Formal interface
271271
tutorials/arvo/behn.md+1−1
@@ -18,4 +18,4 @@ for keeping track of time-specified file requests. `%ames` should
1818probably use `%behn` to keep track of things like network timeouts and
1919retry timing, but it currently uses its own alarm system.
2020
21−This article is a stub. For more information, see either `behn.hoon` or [Lesson 2.6 - Behn](@/docs/tutorials/hoon/behn.md) of the Hoon tutorial.
21+This article is a stub. For more information, see either `behn.hoon` or [Lesson 2.6 - Behn](@/docs/tutorials/hoon/hoon-school/behn.md) of the Hoon tutorial.
tutorials/arvo/cli-tutorial.md → tutorials/hoon/cli-tutorial.mdrenamed+1−1
@@ -22,7 +22,7 @@ the functionality of the `%shoe` app and then go through the code line-by-line.
2222
2323This tutorial can be
2424considered to be an application equivalent of the [Hoon school
25−lesson](@/docs/tutorials/hoon/generators.md#ask) on `sole` and `%ask`
25+lesson](@/docs/tutorials/hoon/hoon-school/generators.md#ask) on `sole` and `%ask`
2626generators, which only covers the bare minimum necessary to write generators
2727that take user input.
2828
tutorials/hoon/_index.md → tutorials/hoon/hoon-school/_index.mdrenamed+1−1
@@ -1,5 +1,5 @@
11+++
2−title = "Hoon"
2+title = "Hoon School"
33weight = 1
44sort_by = "weight"
55template = "sections/docs/hoon.html"
tutorials/hoon/ackermann.md → tutorials/hoon/hoon-school/ackermann.mdrenamed

The content is the same.

tutorials/hoon/aqua.md → tutorials/hoon/hoon-school/aqua.mdrenamed

The content is the same.

tutorials/hoon/arms-and-cores.md → tutorials/hoon/hoon-school/arms-and-cores.mdrenamed+1−1
@@ -181,7 +181,7 @@ To reinforce your newfound understanding of arms and cores, let's go over the va
181181
182182### Address-Based Wings
183183
184−In the [previous lesson](@/docs/tutorials/hoon/the-subject-and-its-legs.md), you saw how the following expressions return legs based on an address in the subject: `+n`, `.`, `-`, `+`, `+>`, `+<`, `->`, `-<`, `&`, `|` etc. When these resolve to the part of the subject containing an arm, they **don't** evaluate the arm. They simply return the indicated noun fragment of the subject, as if it were a leg.
184+In the [previous lesson](@/docs/tutorials/hoon/hoon-school/the-subject-and-its-legs.md), you saw how the following expressions return legs based on an address in the subject: `+n`, `.`, `-`, `+`, `+>`, `+<`, `->`, `-<`, `&`, `|` etc. When these resolve to the part of the subject containing an arm, they **don't** evaluate the arm. They simply return the indicated noun fragment of the subject, as if it were a leg.
185185
186186Let's use `-.c` to look at the head of `c`, i.e., the battery of the core:
187187
tutorials/hoon/atoms-auras-and-simple-cell-types.md → tutorials/hoon/hoon-school/atoms-auras-and-simple-cell-types.mdrenamed+1−1
@@ -18,7 +18,7 @@ In this lesson we'll cover (1)-(4) as they pertain to atoms and simple cell type
1818
1919## Atoms and Auras
2020
21−In [Lesson 1.2](@/docs/tutorials/hoon/nouns.md) we defined what an atom is: any unsigned integer. In this lesson we'll expand on that discussion, going over how Hoon's type system implements auras.
21+In [Lesson 1.2](@/docs/tutorials/hoon/hoon-school/nouns.md) we defined what an atom is: any unsigned integer. In this lesson we'll expand on that discussion, going over how Hoon's type system implements auras.
2222
2323In the most straightforward sense, atoms simply are unsigned integers. But they can also be interpreted as representing signed integers, ASCII symbols, floating-point values, dates, binary numbers, hexadecimal numbers, and more. Every atom is, in and of itself, just an unsigned integer; but Hoon keeps track of type information about each atom, and this info tells Hoon how to interpret the atom in question.
2424
tutorials/hoon/bank-account.md → tutorials/hoon/hoon-school/bank-account.mdrenamed

The content is the same.

tutorials/hoon/behn.md → tutorials/hoon/hoon-school/behn.mdrenamed+1−1
@@ -6,7 +6,7 @@ template = "doc.html"
66
77In this lesson we introduce the notion of a vane, which should be thought of as a kernel module for Arvo (if you don't know what that means yet, just keep reading). We first present a primer on what vanes are and how they communicate, followed by an examination of the simplest vane, known as Behn (pronounced like "bane"), which is Arvo's timekeeper.
88
9−Following this lesson, we will introduce Gall, a vane used to build user space apps. Then we have a walkthrough where we construct an [egg timer](@/docs/tutorials/hoon/egg-timer.md) as a Gall app that interacts with Behn.
9+Following this lesson, we will introduce Gall, a vane used to build user space apps. Then we have a walkthrough where we construct an [egg timer](@/docs/tutorials/hoon/hoon-school/egg-timer.md) as a Gall app that interacts with Behn.
1010
1111## Vanes
1212
tutorials/hoon/caesar.md → tutorials/hoon/hoon-school/caesar.mdrenamed

The content is the same.

tutorials/hoon/conditionals.md → tutorials/hoon/hoon-school/conditionals.mdrenamed+1−1
@@ -18,7 +18,7 @@ In this lesson, we will write a generator that takes an integer and checks if it
1818==
1919```
2020
21−On the very first line, with `:- %say` we are beginning to create a generator of the `%say` variety. The result of a `%say` generator is a cell with a head of `%say` and tail that is a [gate](/docs/glossary/gate/), itself producing a `cask`, a pair of a `mark` and some data. It's not important for understanding conditionals; this is just template code. For more information about `%say` generators, see the [Generators](@/docs/tutorials/hoon/generators.md) documentation.
21+On the very first line, with `:- %say` we are beginning to create a generator of the `%say` variety. The result of a `%say` generator is a cell with a head of `%say` and tail that is a [gate](/docs/glossary/gate/), itself producing a `cask`, a pair of a `mark` and some data. It's not important for understanding conditionals; this is just template code. For more information about `%say` generators, see the [Generators](@/docs/tutorials/hoon/hoon-school/generators.md) documentation.
2222
2323```hoon
2424|= [* [n=@ud ~] ~]
tutorials/hoon/doors.md → tutorials/hoon/hoon-school/doors.mdrenamed+1−1
@@ -369,7 +369,7 @@ In the above example we created a door `c` with sample `b=@` and found that the
369369 ++ greater |=(a=@ (gth a b))
370370 --
371371```
372−Here the type of `b` is inferred to be `@` based on the example value `7`, similar to how we've seen casting done by example. You will learn more about how types are inferred in [Lesson 2.2](@docs/tutorials/hoon/type-checking-and-type-inference).
372+Here the type of `b` is inferred to be `@` based on the example value `7`, similar to how we've seen casting done by example. You will learn more about how types are inferred in [Lesson 2.2](@docs/tutorials/hoon/hoon-school/type-checking-and-type-inference).
373373
374374### Doors in the Hoon Standard Library
375375
tutorials/hoon/egg-timer.md → tutorials/hoon/hoon-school/egg-timer.mdrenamed

The content is the same.

tutorials/hoon/fibonacci.md → tutorials/hoon/hoon-school/fibonacci.mdrenamed

The content is the same.

tutorials/hoon/gall.md → tutorials/hoon/hoon-school/gall.mdrenamed

The content is the same.

tutorials/hoon/gates.md → tutorials/hoon/hoon-school/gates.mdrenamed

The content is the same.

tutorials/hoon/generators.md → tutorials/hoon/hoon-school/generators.mdrenamed

The content is the same.

tutorials/hoon/hoon-syntax.md → tutorials/hoon/hoon-school/hoon-syntax.mdrenamed+7−7
@@ -84,7 +84,7 @@ We start with atom literals. Each of these is a basic expression of Hoon that ev
8484~zod
8585```
8686
87−Recall from [Lesson 1.2](@/docs/tutorials/hoon/nouns.md) that even though atoms are unsigned integers, they can be pretty-printed in different ways. The way an atom is to be represented depends on its aura. The literal syntax for each of the hard-coded auras will be explained further in [Lesson 2.1](@/docs/tutorials/hoon/atoms-auras-and-simple-cell-types.md).
87+Recall from [Lesson 1.2](@/docs/tutorials/hoon/hoon-school/nouns.md) that even though atoms are unsigned integers, they can be pretty-printed in different ways. The way an atom is to be represented depends on its aura. The literal syntax for each of the hard-coded auras will be explained further in [Lesson 2.1](@/docs/tutorials/hoon/hoon-school/atoms-auras-and-simple-cell-types.md).
8888
8989Cell literals can be written in Hoon using `[ ]`. Cell literals are complex, because other expressions are put inside the square brackets. Examples:
9090
@@ -124,7 +124,7 @@ Let’s start with the base case: a single limb. A limb expression is a trivial
124124- `add`
125125- `mul`
126126
127−As a special limb we also have `$`. This is the name of the [arm](/docs/glossary/arm/) in special one-armed [cores](/docs/glossary/core/) called “gates”. (We’ll cover the role of `$` in [Lesson 1.4](@/docs/tutorials/hoon/gates.md).)
127+As a special limb we also have `$`. This is the name of the [arm](/docs/glossary/arm/) in special one-armed [cores](/docs/glossary/core/) called “gates”. (We’ll cover the role of `$` in [Lesson 1.4](@/docs/tutorials/hoon/hoon-school/gates.md).)
128128
129129Wing expressions with multiple limbs are complex expressions. Examples:
130130
@@ -141,7 +141,7 @@ Wing expressions with multiple limbs are complex expressions. Examples:
141141
142142Hoon is a statically typed language. You’ll learn more about the type system later in the chapter. For now, just know that Hoon’s type system uses special symbols to indicate certain fundamental types: `~` (null), `*` (noun), `@` (atom), `^` (cell), and `?` (flag). Each of these symbols can be used as a stand-alone expression of Hoon. In the case of `@` there may be a series of letters following it, to indicate an atom aura; e.g., `@s`, `@rs`, `@tas`, and `@tD`.
143143
144−They may also be put in brackets to indicate compound types, e.g., `[@ ^]`, `[@ud @sb]`, `[[? *] ^]`. (Technically these expressions don’t _always_ indicate compound types. In certain contexts they’re interpreted in a different way. We’ll address this variation of meaning in [Lesson 2.3](@/docs/tutorials/hoon/structures-and-complex-types.md).)
144+They may also be put in brackets to indicate compound types, e.g., `[@ ^]`, `[@ud @sb]`, `[[? *] ^]`. (Technically these expressions don’t _always_ indicate compound types. In certain contexts they’re interpreted in a different way. We’ll address this variation of meaning in [Lesson 2.3](@/docs/tutorials/hoon/hoon-school/structures-and-complex-types.md).)
145145
146146### Rune Expressions
147147
@@ -213,7 +213,7 @@ What Hoon expression does the following figure correspond to, and what does it e
213213Right. This represents the Hoon expression `:- 2 :- 3 4`,
214214and evaluates to `[2 [3 4]]`. Remember, though, that if you input this into dojo it will print as `[2 3 4]`.
215215
216−Thinking in terms of these “LEGO block” diagrams, as well as the more literal binary tree diagrams utilized in [Lesson 1.2](@/docs/tutorials/hoon/nouns.md), can be a helpful learning and debugging tactic.
216+Thinking in terms of these “LEGO block” diagrams, as well as the more literal binary tree diagrams utilized in [Lesson 1.2](@/docs/tutorials/hoon/hoon-school/nouns.md), can be a helpful learning and debugging tactic.
217217
218218##### Exercise 1.3a
219219
@@ -341,11 +341,11 @@ The Hoon syntax can be intimidating for the uninitiated, so it’s good to remem
341341- The [Runes](@/docs/reference/hoon-expressions/rune/_index.md) page will show you how to use any Hoon rune.
342342- The [Cheat Sheet](@/docs/reference/cheat-sheet.md) is a more compact place to look up rune expressions.
343343- The [Standard Library](@/docs/reference/library/table-of-contents.md) section has its sub-pages arranged by category. So arithmetic functions, for example, are all found on the same page.
344−- The [Hoon Style Guide](@/docs/tutorials/hoon/style.md) will show you how to write your Hoon code so that it’s idiomatic and easily understood by others.
344+- The [Hoon Style Guide](@/docs/tutorials/hoon/hoon-school/style.md) will show you how to write your Hoon code so that it’s idiomatic and easily understood by others.
345345
346346### Debugging
347347
348−When you have an error in your Hoon code, one of two things can happen. Either the code does not run at all and you get an error (such as `nest-fail`), or your code _does_ run but produces the wrong results. The [Troubleshooting](@/docs/tutorials/hoon-errors.md) page is a good resource for figuring out how to debug your code.
348+When you have an error in your Hoon code, one of two things can happen. Either the code does not run at all and you get an error (such as `nest-fail`), or your code _does_ run but produces the wrong results. The [Troubleshooting](@/docs/tutorials/hoon-school/hoon-errors.md) page is a good resource for figuring out how to debug your code.
349349
350350There are a couple useful runes associated with debugging:
351351
@@ -353,4 +353,4 @@ There are a couple useful runes associated with debugging:
353353
354354`~&` (sigpam) is used to print its argument every time that argument executes. So, if you wanted to see how many times your program executed `foo`, you would write `foo bar`. Then, when your program runs, it will print `foo` on a new line of output every time the program comes across it by recursion.
355355
356−But there are more. Check out the aforementioned [Troubleshooting](@/docs/tutorials/hoon-errors.md) page to see other handy debugging runes and how to use them.
356+But there are more. Check out the aforementioned [Troubleshooting](@/docs/tutorials/hoon-school/hoon-errors.md) page to see other handy debugging runes and how to use them.
tutorials/hoon/iron-polymorphism.md → tutorials/hoon/hoon-school/iron-polymorphism.mdrenamed

The content is the same.

tutorials/hoon/lead-polymorphism.md → tutorials/hoon/hoon-school/lead-polymorphism.mdrenamed

The content is the same.

tutorials/hoon/libraries.md → tutorials/hoon/hoon-school/libraries.mdrenamed

The content is the same.

tutorials/hoon/list-of-numbers.md → tutorials/hoon/hoon-school/list-of-numbers.mdrenamed

The content is the same.

tutorials/hoon/lists.md → tutorials/hoon/hoon-school/lists.mdrenamed

The content is the same.

tutorials/hoon/molds.md → tutorials/hoon/hoon-school/molds.mdrenamed+1−1
@@ -44,7 +44,7 @@ To coerce using a gate, it's good practice to use the `;;` rune, which can parse
4444`|$` implements [parametric
4545polymorphism](https://en.wikipedia.org/wiki/Parametric_polymorphism) in Hoon,
4646and as such we call gates produced with `|$` a **wet gate**. We discuss what this
47−means in further detail in the upcoming lesson on [polymorphism](@/docs/tutorials/hoon/type-polymorphism.md).
47+means in further detail in the upcoming lesson on [polymorphism](@/docs/tutorials/hoon/hoon-school/type-polymorphism.md).
4848
4949Let's look at some examples from `hoon.hoon`.
5050```hoon
tutorials/hoon/nouns.md → tutorials/hoon/hoon-school/nouns.mdrenamed+1−1
@@ -283,7 +283,7 @@ You can force Hoon to interpret an atom differently by using the aura symbols in
283283
284284The atoms in the examples above are all exactly the same value. Only they're interpreted and printed differently, depending on the aura.
285285
286−You'll learn more about atoms and auras in [Lesson 2.1](@docs/tutorials/hoon/atoms-auras-and-simple-cell-types.md).
286+You'll learn more about atoms and auras in [Lesson 2.1](@docs/tutorials/hoon/hoon-school/atoms-auras-and-simple-cell-types.md).
287287
288288## Cells
289289
tutorials/hoon/recursion.md → tutorials/hoon/hoon-school/recursion.mdrenamed

The content is the same.

tutorials/hoon/setup.md → tutorials/hoon/hoon-school/setup.mdrenamed+2−2
@@ -61,7 +61,7 @@ You'll see:
616117
6262```
6363
64−You asked Dojo to evaluate `17` and it echoed the number back at you. This value is a "noun". We'll talk more about [nouns](/docs/glossary/noun/) in [Lesson 1.2](@/docs/tutorials/hoon/nouns.md), but first let's write a very basic program.
64+You asked Dojo to evaluate `17` and it echoed the number back at you. This value is a "noun". We'll talk more about [nouns](/docs/glossary/noun/) in [Lesson 1.2](@/docs/tutorials/hoon/hoon-school/nouns.md), but first let's write a very basic program.
6565
6666## Generators
6767
@@ -69,7 +69,7 @@ Generators are the most straightforward way to write Hoon programs. They are a c
6969
7070The simplest type of generator is the **naked generator**. All naked generators are `gates`: functions that take an argument and produce an output. Before creating a generator you need to [mount](https://urbit.org/using/install/#the-dojo) your `desk` to Unix. To create a generator, all you need to do is write a `gate` and put it into a file in the `/home/gen/` directory of your ship as a `.hoon` file. (Assuming you've already mounted with `|mount /=home=`.) After this, you need to run `|commit %home` in Dojo and the new file will be recognized by your ship. To run a generator named `mygen.hoon`, you would type `+mygen <argument>` in your ship's Dojo.
7171
72−If this doesn't make sense yet, that's okay. In the [next lesson](@/docs/tutorials/hoon/list-of-numbers.md), we will walk you through an example `gate` that is run as a generator.
72+If this doesn't make sense yet, that's okay. In the [next lesson](@/docs/tutorials/hoon/hoon-school/list-of-numbers.md), we will walk you through an example `gate` that is run as a generator.
7373
7474## Text editors
7575
tutorials/hoon/structures-and-complex-types.md → tutorials/hoon/hoon-school/structures-and-complex-types.mdrenamed+1−1
@@ -352,5 +352,5 @@ Often `$@` is used to define a type with a null or trivial case for the `@` case
352352
353353Now the `~` value is included as a possible value for `user`.
354354
355−We will see types arise again, in the context of polymorphism in [Lesson 2.5](@/docs/tutorials/hoon/type-polymorphism.md).
355+We will see types arise again, in the context of polymorphism in [Lesson 2.5](@/docs/tutorials/hoon/hoon-school/type-polymorphism.md).
356356
tutorials/hoon/style.md → tutorials/hoon/hoon-school/style.mdrenamed

The content is the same.

tutorials/hoon/the-subject-and-its-legs.md → tutorials/hoon/hoon-school/the-subject-and-its-legs.mdrenamed+1−1
@@ -11,7 +11,7 @@ Hoon isn't an object-oriented programming language; it's a "subject-oriented" pr
1111
1212For now we can say three things about the subject: (1) every Hoon expression is evaluated relative to some subject; (2) roughly, the subject defines the environment in which a Hoon expression is evaluated; and (3) the subject is a [noun](/docs/glossary/noun/).
1313
14−In fact, you already learned about the noun address system in [Lesson 1.2](@/docs/tutorials/hoon/nouns.md) when you used `+` to return a fragment of a noun:
14+In fact, you already learned about the noun address system in [Lesson 1.2](@/docs/tutorials/hoon/hoon-school/nouns.md) when you used `+` to return a fragment of a noun:
1515
1616```
1717> +1:[[11 22] 33]
tutorials/hoon/trees-sets-and-maps.md → tutorials/hoon/hoon-school/trees-sets-and-maps.mdrenamed

The content is the same.

tutorials/hoon/type-checking-and-type-inference.md → tutorials/hoon/hoon-school/type-checking-and-type-inference.mdrenamed

The content is the same.

tutorials/hoon/type-polymorphism.md → tutorials/hoon/hoon-school/type-polymorphism.mdrenamed+1−1
@@ -192,7 +192,7 @@ As is the case with dry arms, there is a type-check associated with each wet arm
192192### Parametric Polymorphism and `|$`
193193
194194We first encountered `|$` in the lesson on
195−[molds](@/docs/tutorials/hoon/molds.md) as a wet gate that is a mold builder rune which takes in a
195+[molds](@/docs/tutorials/hoon/hoon-school/molds.md) as a wet gate that is a mold builder rune which takes in a
196196list of molds and produces a new mold. Here we take another look at this rune as
197197an implementation of **parametric polymorphism** in Hoon.
198198
tutorials/arvo/parsing.md → tutorials/hoon/parsing.mdrenamed+1−1
@@ -435,7 +435,7 @@ syntax error
435435
436436## Parsing atoms
437437
438−[Recall](@/docs/tutorials/hoon/lists.md) that `cord`s are atoms with the aura
438+[Recall](@/docs/tutorials/hoon/hoon-school/lists.md) that `cord`s are atoms with the aura
439439`@t` and are typically used to represent strings internally as data, as atoms
440440are faster for the computer to work with than `tape`s, which are `list`s of
441441`@tD` atoms. `+rash` and `+rush` are for parsing atoms, with `+rash` being
tutorials/hoon/workbook/_index.md+4−4
@@ -8,10 +8,10 @@ aliase = ["docs/learn/hoon/workbook/"]
88The Workbook is the place to sharpen your Hoon skills. Each entry in the
99Workbook is a code walkthrough followed by exercises.
1010
11−- The [Digits](@/docs/tutorials/hoon/workbook/digits.md) example demonstrates how to decompose a number into a list of its digits.
11+- The [Digits](@/docs/tutorials/hoon/hoon-school/workbook/digits.md) example demonstrates how to decompose a number into a list of its digits.
1212
13−- The [Magic 8-Ball](@/docs/tutorials/hoon/workbook/eightball.md) example emulates everyone's favorite decision-making machine.
13+- The [Magic 8-Ball](@/docs/tutorials/hoon/hoon-school/workbook/eightball.md) example emulates everyone's favorite decision-making machine.
1414
15−- The [Traffic-light](@/docs/tutorials/hoon/workbook/traffic-light.md) example demonstrates how to creates a state machine in Hoon.
15+- The [Traffic-light](@/docs/tutorials/hoon/hoon-school/workbook/traffic-light.md) example demonstrates how to creates a state machine in Hoon.
1616
17−- The [Bomb-defusing](@/docs/tutorials/hoon/workbook/bomb.md) exercise shows how to program, well, a bomb-defusing scenario.
17+- The [Bomb-defusing](@/docs/tutorials/hoon/hoon-school/workbook/bomb.md) exercise shows how to program, well, a bomb-defusing scenario.
tutorials/hoon/workbook/digits.md+1−1
@@ -22,7 +22,7 @@ of its digits.
2222==
2323```
2424
25−We're creating a [`%say` generator](@/docs/tutorials/hoon/generators.md). That means we
25+We're creating a [`%say` generator](@/docs/tutorials/hoon/hoon-school/generators.md). That means we
2626need some "boilerplate" code in the format of `[%say [%noun "data"]]`:
2727
2828```hoon
tutorials/hoon/workbook/eightball.md+1−1
@@ -60,7 +60,7 @@ is good practice whenever developing something in Hoon.
6060
6161To make our program produce a random result, we need entropy. To get entropy,
6262we need data from Arvo. To get data from Arvo, we use a generator of the
63−[`%say`](@/docs/tutorials/hoon/generators.md) variety. The above code chunk is
63+[`%say`](@/docs/tutorials/hoon/hoon-school/generators.md) variety. The above code chunk is
6464the template that is followed for all `%say` generators.
6565
6666`:- %say` creates a cell with `%say` as that cell's head to define
tutorials/hoon/workbook/traffic-light.md+1−1
@@ -37,7 +37,7 @@ Let's look at the code piece-by-piece.
3737```
3838
3939Here's the boilerplate code to designate our generator as being a
40−[`%say` generator](@/docs/tutorials/hoon/generators.md). We're using this variant because
40+[`%say` generator](@/docs/tutorials/hoon/hoon-school/generators.md). We're using this variant because
4141it allows us to run the generator without any arguments. It's otherwise not
4242relevant to the functionality of our program.
4343