on master help sign in
Aliases for old IA -> new IA
commit38cf16b8baac929f694c71962fd1a2f902a0bb0d authorMatilde Park <matilde@tlon.io> dateTue 8 Oct 2019, 19:50 (7 years ago) parent43b7a26
135 files changed+148−10
arvo/_index.md+1 arvo/ames.md+1 arvo/behn.md+1 arvo/clay.md+1 arvo/dill.md+1 arvo/eyre.md+1 arvo/ford.md+1 arvo/gall.md+1 arvo/glossary.md+2−1 arvo/hall.md+1 arvo/sail-and-udon.md+1 arvo/ship-troubleshooting.md+1 azimuth/azimuth.md+1 azimuth/glossary.md+1 hoon/_index.md+1 hoon/cheat-sheet.md+2−1 hoon/hoon-expressions/_index.md+1 hoon/hoon-expressions/advanced.md+1 hoon/hoon-expressions/basic.md+1 hoon/hoon-expressions/irregular.md+1−1 hoon/hoon-expressions/limb/_index.md+1 hoon/hoon-expressions/limb/limb.md+1 hoon/hoon-expressions/limb/wing.md+1 hoon/hoon-expressions/rune/_index.md+1 hoon/hoon-expressions/rune/bar.md+1 hoon/hoon-expressions/rune/buc.md+1 hoon/hoon-expressions/rune/cen.md+1 hoon/hoon-expressions/rune/col.md+1 hoon/hoon-expressions/rune/constants.md+1 hoon/hoon-expressions/rune/dot.md+1 hoon/hoon-expressions/rune/ket.md+1 hoon/hoon-expressions/rune/lus.md+1 hoon/hoon-expressions/rune/mic.md+1 hoon/hoon-expressions/rune/sig.md+1 hoon/hoon-expressions/rune/terminators.md+1 hoon/hoon-expressions/rune/tis.md+1 hoon/hoon-expressions/rune/wut.md+1 hoon/hoon-expressions/rune/zap.md+1 hoon/hoon-tutorial/_index.md+1−1 hoon/hoon-tutorial/ackermann.md+1 hoon/hoon-tutorial/arms-and-cores.md+1 hoon/hoon-tutorial/atoms-auras-and-simple-cell-types.md+1 hoon/hoon-tutorial/bank-account.md+1 hoon/hoon-tutorial/caesar.md+1 hoon/hoon-tutorial/conditionals.md+1 hoon/hoon-tutorial/doors.md+2 hoon/hoon-tutorial/egg-timer.md+1 hoon/hoon-tutorial/fibonacci.md+1 hoon/hoon-tutorial/gall.md+1 hoon/hoon-tutorial/gates.md+1 hoon/hoon-tutorial/generators.md+2 hoon/hoon-tutorial/hoon-syntax.md+1 hoon/hoon-tutorial/iron-polymorphism.md+1 hoon/hoon-tutorial/lead-polymorphism.md+1 hoon/hoon-tutorial/libraries.md+1 hoon/hoon-tutorial/list-of-numbers.md+2 hoon/hoon-tutorial/lists.md+1−1 hoon/hoon-tutorial/molds.md+1 hoon/hoon-tutorial/nouns.md+1 hoon/hoon-tutorial/recursion.md+2 hoon/hoon-tutorial/setup.md+2 hoon/hoon-tutorial/structures-and-complex-types.md+2 hoon/hoon-tutorial/the-subject-and-its-legs.md+2 hoon/hoon-tutorial/trees-sets-and-maps.md+1 hoon/hoon-tutorial/type-checking-and-type-inference.md+2 hoon/hoon-tutorial/type-polymorphism.md+2 hoon/library/1a.md+1 hoon/library/1b.md+1 hoon/library/1c.md+1 hoon/library/2a.md+1 hoon/library/2b.md+1 hoon/library/2c.md+1 hoon/library/2d.md+1 hoon/library/2e.md+1 hoon/library/2f.md+1 hoon/library/2g.md+1 hoon/library/2h.md+1 hoon/library/2i.md+1 hoon/library/2j.md+1 hoon/library/2k.md+1 hoon/library/2l.md+1 hoon/library/2m.md+1 hoon/library/2n.md+1 hoon/library/2o.md+1 hoon/library/2p.md+1 hoon/library/2q.md+1 hoon/library/3a.md+1 hoon/library/3b.md+1 hoon/library/3c.md+1 hoon/library/3d.md+1 hoon/library/3e.md+1 hoon/library/3f.md+1 hoon/library/3g.md+1 hoon/library/4a.md+1 hoon/library/4b.md+1 hoon/library/4c.md+1 hoon/library/4d.md+1 hoon/library/4e.md+1 hoon/library/4f.md+1 hoon/library/4g.md+1 hoon/library/4h.md+1 hoon/library/4i.md+1 hoon/library/4j.md+1 hoon/library/4k.md+1 hoon/library/4l.md+1 hoon/library/4m.md+1 hoon/library/4n.md+1 hoon/library/4o.md+1 hoon/library/5a.md+1 hoon/library/5b.md+1 hoon/library/5c.md+1 hoon/library/5d.md+1 hoon/library/5e.md+1 hoon/library/5f.md+1 hoon/library/5g.md+1 hoon/library/_index.md+1 hoon/library/table-of-contents.md+1 hoon/library/zuse.md+2−3 hoon/style.md+1 hoon/workbook/_index.md+1 hoon/workbook/bomb.md+1 hoon/workbook/digits.md+1 hoon/workbook/eightball.md+1 hoon/workbook/traffic-light.md+1 nock/_index.md+1 nock/definition.md+1−1 nock/example.md+1 nock/explanation.md+2 nock/implementations.md+1 vere/_index.md+1 vere/api.md+1 vere/c.md+1 vere/jetting.md+1 vere/nouns.md+1 vere/runtime.md+1−1
arvo/_index.md+1
@@ -3,6 +3,7 @@ title = "Arvo"
33weight = 1
44sort_by = "weight"
55template = "sections/docs/chapters.html"
6+aliases = ["/docs/learn/arvo/"]
67+++
78Arvo is Urbit's functional operating system, written in [Hoon](@/docs/hoon/_index.md). It's composed of modules called _vanes_:
89
arvo/ames.md+1
@@ -2,6 +2,7 @@
22title = "Ames"
33weight = 1
44template = "doc.html"
5+aliases = ["/docs/learn/arvo/ames/"]
56+++
67Our networking protocol.
78
arvo/behn.md+1
@@ -2,6 +2,7 @@
22title = "Behn"
33weight = 2
44template = "doc.html"
5+aliases = ["/docs/learn/arvo/behn/"]
56+++
67Our simple timer.
78
arvo/clay.md+1
@@ -2,6 +2,7 @@
22title = "Clay"
33weight = 3
44template = "doc.html"
5+aliases = ["/docs/learn/arvo/clay/"]
56+++
67Our filesystem.
78
arvo/dill.md+1
@@ -2,6 +2,7 @@
22title = "Dill"
33weight = 4
44template = "doc.html"
5+aliases = ["/docs/learn/arvo/dill/"]
56+++
67Our terminal driver.
78
arvo/eyre.md+1
@@ -2,6 +2,7 @@
22title = "Eyre"
33weight = 5
44template = "doc.html"
5+aliases = ["/docs/learn/arvo/eyre/"]
56+++
67Our HTTP server.
78
arvo/ford.md+1
@@ -2,6 +2,7 @@
22title = "Ford"
33weight = 6
44template = "doc.html"
5+aliases = ["/docs/learn/arvo/ford/"]
56+++
67Our typed and marked computation engine.
78
arvo/gall.md+1
@@ -2,6 +2,7 @@
22title = "Gall Apps"
33weight = 6
44template = "doc.html"
5+aliases = ["/docs/learn/arvo/gall/"]
56+++
67This is documentation about how to write Gall apps. Some knowledge of Hoon is assumed.
78
arvo/glossary.md+2−1
@@ -1,7 +1,8 @@
11+++
2−title = "Arvo Glossary"
2+title = "Glossary"
33weight = 3
44template = "doc.html"
5+aliases = ["docs/reference/arvo-glossary/"]
56+++
67
78Urbit is renowned for its exotic terminology. Here's a simple overview
arvo/hall.md+1
@@ -2,6 +2,7 @@
22title = "Hall"
33weight = 7
44template = "doc.html"
5+aliases = ["docs/learn/arvo/hall/"]
56+++
67> Last major revision of this tutorial: 2017. Some of the information and Hoon syntax here may
78 be outdated.
arvo/sail-and-udon.md+1
@@ -2,6 +2,7 @@
22title = "Sail and Udon"
33weight = 7
44template = "doc.html"
5+aliases = ["docs/using/sail-and-udon/"]
56+++
67
78Sail is Hoon markup that’s used to render a web page with XML. But what makes it special is that you can run arbitrary Hoon code within such a web page without using a separate markup language.
arvo/ship-troubleshooting.md+1
@@ -2,6 +2,7 @@
22title = "Ship Troubleshooting"
33weight = 8
44template = "doc.html"
5+aliases = ["docs/using/ship-troubleshooting/"]
56+++
67
78Urbit is still in the development stage, so there's a chance that your ship won't start properly, or will stop working properly when you. That's ok! This document is intended to help you in such an event.
azimuth/azimuth.md+1
@@ -2,6 +2,7 @@
22title = "Azimuth"
33weight = 2
44template = "doc.html"
5+aliases = ["/docs/learn/azimuth"]
56+++
67
78Azimuth is a general-purpose public-key infrastructure (PKI) on the Ethereum blockchain, used as a decentralized ledger for Urbit identities that we call **points**. Having a point is necessary to use the Urbit network, which makes it important to have a neutral ledger to determine who owns what.
azimuth/glossary.md+1
@@ -2,6 +2,7 @@
22title = "Azimuth Glossary"
33weight = 3
44template = "doc.html"
5+aliases = ["/docs/reference/azimuth-glossary/"]
56+++
67
78
hoon/_index.md+1
@@ -3,6 +3,7 @@ title = "Hoon"
33weight = 2
44sort_by = "weight"
55template = "sections/docs/chapters.html"
6+aliases = ["docs/learn/hoon/"]
67+++
78Hoon 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.
89
hoon/cheat-sheet.md+2−1
@@ -1,7 +1,8 @@
11+++
2−title = "Cheat sheet"
2+title = "Cheat Sheet"
33weight = 5
44template = "doc.html"
5+aliases = ["docs/reference/cheat-sheet/"]
56+++
67
78Download the cheat sheet PDF [here](https://storage.googleapis.com/media.urbit.org/docs/hoon-cheat-sheet--2017-12-12.pdf).
hoon/hoon-expressions/_index.md+1
@@ -3,6 +3,7 @@ title = "Hoon Expressions"
33weight = 1
44sort_by = "weight"
55template = "sections/docs/chapters.html"
6+aliases = ["/docs/reference/hoon-expressions/"]
67+++
78Documentation for Hoon expressions.
89
hoon/hoon-expressions/advanced.md+1
@@ -2,6 +2,7 @@
22title = "Advanced Types"
33weight = 5
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/advanced/"]
56+++
67The definition of `type` in the 'Basic Types' section is only a simplified version. The Hoon type system is simple, but not **that** simple.
78
hoon/hoon-expressions/basic.md+1
@@ -2,6 +2,7 @@
22title = "Basic Types"
33weight = 4
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/basic/"]
56+++
67A type is usually understood to be a set of values. Hoon values are all nouns,
78so a Hoon type is a set of nouns.
hoon/hoon-expressions/irregular.md+1−1
@@ -2,8 +2,8 @@
22title = "Irregular forms"
33weight = 7
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/irregular/"]
56+++
6−##### `~palfun-foslup`
77
88##### Reading guide
99
hoon/hoon-expressions/limb/_index.md+1
@@ -3,6 +3,7 @@ title = "Limbs and wings"
33weight = 3
44sort_by = "weight"
55template = "sections/docs/chapters.html"
6+aliases = ["docs/reference/hoon-expressions/limb/"]
67+++
78One feature Hoon lacks: a context that isn't a first-class value. Hoon has no
89concept of scope, environment, etc. An expression has exactly one data source,
hoon/hoon-expressions/limb/limb.md+1
@@ -2,6 +2,7 @@
22title = "Limbs"
33weight = 1
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/limb/limb/"]
56+++
67A limb is an attribute of subject.
78
hoon/hoon-expressions/limb/wing.md+1
@@ -2,6 +2,7 @@
22title = "Wings"
33weight = 2
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/limb/wing/"]
56+++
67`[%wing p=(list limb)]`
78
hoon/hoon-expressions/rune/_index.md+1
@@ -3,6 +3,7 @@ title = "Runes"
33weight = 2
44sort_by = "weight"
55template = "sections/docs/chapters.html"
6+aliases = ["docs/reference/hoon-expressions/rune/"]
67+++
78Runes are a way to form expressions in Hoon.
89
hoon/hoon-expressions/rune/bar.md+1
@@ -2,6 +2,7 @@
22title = "Cores | ('bar')"
33weight = 7
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/rune/bar/"]
56+++
67Core expressions produce cores. A core is a cell of `[battery payload]`.
78The `battery` is code, a battery of Nock formulas. The `payload` is the data
hoon/hoon-expressions/rune/buc.md+1
@@ -2,6 +2,7 @@
22title = "Structures $ ('buc')"
33weight = 12
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/rune/buc/"]
56+++
67The `$` family of runes is used for defining custom types. Strictly speaking,
78these runes are used to produce 'structures'. A structure is a compile-time
hoon/hoon-expressions/rune/cen.md+1
@@ -2,6 +2,7 @@
22title = "Calls % ('cen')"
33weight = 10
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/rune/cen/"]
56+++
67The `%` family of runes is used for making 'function calls' in Hoon. To be more precise, these runes evaluate the `$` arm in cores, usually after modifying the sample. (The default sample is replaced with the input values given in the call.)
78
hoon/hoon-expressions/rune/col.md+1
@@ -2,6 +2,7 @@
22title = "Cells : ('col')"
33weight = 9
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/rune/col/"]
56+++
67The `:` ("col") expressions are used to produce cells, which are pairs of values. E.g., `:-(p q)` produces the cell `[p q]`. All `:` runes reduce to `:-`.
78
hoon/hoon-expressions/rune/constants.md+1
@@ -2,6 +2,7 @@
22title = "Atoms and strings"
33weight = 1
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/rune/constants/"]
56+++
67The simplest expressions in every language are constants:
78atoms, strings, paths. (Strings and paths aren't all constants per
hoon/hoon-expressions/rune/dot.md+1
@@ -2,6 +2,7 @@
22title = "Nock . ('dot')"
33weight = 3
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/rune/dot/"]
56+++
67Anything Nock can do, Hoon can do also. These runes are used for carrying out Nock operations in Hoon.
78
hoon/hoon-expressions/rune/ket.md+1
@@ -2,6 +2,7 @@
22title = "Casts ^ ('ket')"
33weight = 11
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/rune/ket/"]
56+++
67[`^-` ("kethep")](#kethep), [`^+` ("ketlus")](#ketlus), and
78[`^=` ("kettis")](#kettis) let us adjust types without violating type
hoon/hoon-expressions/rune/lus.md+1
@@ -2,6 +2,7 @@
22title = "Arms + ('lus')"
33weight = 8
44template = "doc.html"
5+aliases = ["/docs/reference/hoon-expressions/rune/lus/"]
56+++
67A core is a cell of `[battery payload]`. The battery is made of one or more arms, each of which is a computation on its parent core.
78
hoon/hoon-expressions/rune/mic.md+1
@@ -2,6 +2,7 @@
22title = "Make ; ('mic')"
33weight = 13
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/rune/mic/"]
56+++
67
78Miscellaneous useful macros.
hoon/hoon-expressions/rune/sig.md+1
@@ -2,6 +2,7 @@
22title = "Hints ~ ('sig')"
33weight = 14
44template = "doc.html"
5+aliases = ["/docs/reference/hoon-expressions/rune/sig/"]
56+++
67Runes that use Nock `11` to pass non-semantic info to the interpreter.
78
hoon/hoon-expressions/rune/terminators.md+1
@@ -2,6 +2,7 @@
22title = "Terminators -- and =="
33weight = 15
44template = "doc.html"
5+aliases = ["/docs/reference/hoon-expressions/rune/terminators/"]
56+++
67The `--` and `==` are used as terminators: `--` for core expressions, and `==` for terminating a 'running' or 'jogging' series of Hoon expressions.
78
hoon/hoon-expressions/rune/tis.md+1
@@ -2,6 +2,7 @@
22title = "Change Subject = ('tis')"
33weight = 5
44template = "doc.html"
5+aliases = ["/docs/reference/hoon-expressions/rune/tis/"]
56+++
67These runes modify the subject. (Or more precisely, they
78evaluate at least one of their subexpressions with a modified subject.)
hoon/hoon-expressions/rune/wut.md+1
@@ -2,6 +2,7 @@
22title = "Conditionals ? ('wut')"
33weight = 6
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/rune/wut/"]
56+++
67Hoon has the usual program control branches. It also has the usual logical
78operators: AND `?&`, OR `?|`, and NOT `?!`. It also has a `?=` rune that tests
hoon/hoon-expressions/rune/zap.md+1
@@ -2,6 +2,7 @@
22title = "Wild ! ('zap')"
33weight = 4
44template = "doc.html"
5+aliases = ["docs/reference/hoon-expressions/rune/zap/"]
56+++
67## Runes
78
hoon/hoon-tutorial/_index.md+1−1
@@ -3,7 +3,7 @@ title = "Hoon Tutorial"
33weight = 1
44sort_by = "weight"
55template = "sections/docs/chapters.html"
6−aliases = ["/docs/byte/0/", "/docs/byte"]
6+aliases = ["/docs/byte/0/", "/docs/byte", "/docs/learn/hoon/hoon-tutorial/"]
77+++
88
99This series is designed to teach you Hoon without assuming you have an extensive programming background. In fact, you should be able to follow much of it even if you have no programming experience at all, though of course experience helps. We strongly encourage you to try out all the examples of each lesson. These lessons are meant for the beginner but they aren't meant to be skimmed. Each lesson falls into one of two categories: **readings**, which are prose-heavy explanations of Hoon fundamentals, and **walkthroughs**, which are line-by-line explanations of example programs. Walkthroughs are found between readings, offering a practical implementation of the concepts taught in the reading before.
hoon/hoon-tutorial/ackermann.md+1
@@ -2,6 +2,7 @@
22title = "1.6.1 Walkthrough: Ackermann Function"
33weight = 14
44template = "doc.html"
5+aliases = ["docs/learn/hoon/hoon-tutorial/ackermann/"]
56+++
67
78The Ackermann function is one of the earliest examples of a function that is both totally computable -- meaning that it can be solved -- and not primitively recursive -- meaning it can not be rewritten in an iterative fashion.
hoon/hoon-tutorial/arms-and-cores.md+1
@@ -2,6 +2,7 @@
22title = "1.7 Arms and Cores"
33weight = 15
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/arms-and-cores/"]
56+++
67The Hoon subject is a noun. Each fragment of this noun is either an arm or a leg. In the previous lesson you learned what a leg is, and how to return legs of the subject by various means. In this lesson you'll learn what an arm is. Arms are a bit more complex than legs -- a full understanding of them requires a bit more background knowledge. Accordingly, in this lesson we must also introduce an important Hoon data structure: a 'core'.
78
hoon/hoon-tutorial/atoms-auras-and-simple-cell-types.md+1
@@ -2,6 +2,7 @@
22title = "2.1 Atoms, Auras, and Simple Cell Types"
33weight = 24
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/atoms-auras-and-simple-cell-types/"]
56+++
67Like most modern high-level programming languages, Hoon has a type system. Because Hoon is a functional programming language, its type system differs somewhat from those of non-functional languages. In the next few lessons we'll go over Hoon's type system and point out some of its distinctive features. Certain advanced topics (e.g. type [polymorphism](https://en.wikipedia.org/wiki/Polymorphism_%28computer_science%29)) won't be addressed until a later chapter.
78
hoon/hoon-tutorial/bank-account.md+1
@@ -2,6 +2,7 @@
22title = "1.8.1 Bank Account"
33weight = 17
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/bank-account/"]
56+++
67
78In this lesson, we will write a door that can act as a bank account with the ability to withdraw, deposit, and check the account's balance.
hoon/hoon-tutorial/caesar.md+1
@@ -2,6 +2,7 @@
22title = "1.7.1 Walkthrough: Caesar Cipher"
33weight = 16
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/caesar/"]
56+++
67
78A Caesar cipher is a very simple way to obfuscate a message. The technique
hoon/hoon-tutorial/conditionals.md+1
@@ -2,6 +2,7 @@
22title = "1.3.1 Walkthrough: Conditionals"
33weight = 5
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/conditionals/"]
56+++
67
78In this lesson, we will write a generator that takes an integer and checks if it is an even number between 1 and 100. This will help demonstrate how boolean (true or false) conditional expressions work in Hoon.
hoon/hoon-tutorial/doors.md+2
@@ -2,7 +2,9 @@
22title = "1.8 Doors"
33weight = 16
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/doors/"]
56+++
7+
68It's useful to have cores whose arms evaluate to make gates. The use of such cores is common in Hoon; that's how the functions of the Hoon standard library are stored in the subject. Learning about such cores will also deepen the reader's understanding of Hoon semantics, and for that reason alone is worthwhile.
79
810In this lesson you'll also learn about a new kind of core, called a 'door'.
hoon/hoon-tutorial/egg-timer.md+1
@@ -2,6 +2,7 @@
22title = "2.7.1 Gall Walkthrough: Egg Timer"
33weight = 36
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/egg-timer/"]
56+++
67
78The Arvo operating system is divided up into modules called vanes. Gall is the vane responsible for providing an API for building stateful applications in Urbit. Gall is a complex system that takes a lot of getting used to, so let's dip our toes in with a simple egg-timer app.
hoon/hoon-tutorial/fibonacci.md+1
@@ -2,6 +2,7 @@
22title = "1.4.1 Walkthrough: Fibonacci Sequence"
33weight = 7
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/fibonacci/"]
56+++
67
78In this example, we will write a generator that produces a list of Fibonacci numbers up to `n`.
hoon/hoon-tutorial/gall.md+1
@@ -2,6 +2,7 @@
22title = "2.7 Gall"
33weight = 35
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/gall/"]
56+++
67
78Gall is the Arvo vane responsible for handling user space applications. When writing a Gall application there are several things you will need to understand.
hoon/hoon-tutorial/gates.md+1
@@ -2,6 +2,7 @@
22title = "1.5 Gates (Hoon Functions)"
33weight = 8
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/gates/"]
56+++
67In this lesson you're going to learn about Hoon functions.
78
hoon/hoon-tutorial/generators.md+2
@@ -2,7 +2,9 @@
22title = "1.9 Generators"
33weight = 19
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/generators/"]
56+++
7+
68Generators are the most straightforward way to write programs for Urbit. They
79are used for doing computations that do not require persistence: they take an
810input and produce an output, then disappear. Generators might make sense for
hoon/hoon-tutorial/hoon-syntax.md+1
@@ -2,6 +2,7 @@
22title = "1.3 Hoon Syntax"
33weight = 4
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/hoon-syntax/"]
56+++
67
78The study of Hoon can be divided into two parts: syntax and semantics.
hoon/hoon-tutorial/iron-polymorphism.md+1
@@ -2,6 +2,7 @@
22title = "2.5.1 Walkthrough: Iron Polymorphism and Wet Polymorphism"
33weight = 32
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/iron-polymorphism/"]
56+++
67
78Polymorphism is a programming concept that allows a a piece of code to use different types at different times. It's a common technique in most languages to make code that can be reused for many different situations, and Hoon is no exception. Let's take a look at a gate from the Hoon standard library as an example; we'll be passing a few different types in. The code below is an excerpt from `hoon.hoon` and, as such, will not run as-is by itself.
hoon/hoon-tutorial/lead-polymorphism.md+1
@@ -2,6 +2,7 @@
22title = "2.5.2 Walkthrough: Lead Polymorphism"
33weight = 33
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/lead-polymorphism/"]
56+++
67
78There are four kinds of cores: gold, iron, zinc, and lead. You are able to use core-variance rules to create programs which take other programs as arguments. Which particular rules depends on which kind of core your program needs to complete.
hoon/hoon-tutorial/libraries.md+1
@@ -2,6 +2,7 @@
22title = "2.3.1 Walkthrough: Libraries"
33weight = 28
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/libraries/"]
56+++
67
78In Hoon, like in other languages, it's often useful to create a library for other code to access. In this example, we look at one example of a library that can be used to represent a deck of 52 playing cards. The core below builds such a library, and can be accessed by programs.
hoon/hoon-tutorial/list-of-numbers.md+2
@@ -2,7 +2,9 @@
22title = "1.1.1 Walkthrough: List of Numbers"
33weight = 2
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/list-of-numbers/"]
56+++
7+
68This code-example is intended to familiarize you with the basics of Hoon syntax. It's okay if you don't understand everything immediately; some concepts may be beyond your grasp for now. What's important is that you become accustomed to the elements of the code and their look once combined into a valid program.
79
810Below is a simple Hoon program that takes a single number `n` from the user as input and produces a list of numbers from `1` up to (but not including) `n`. So, if the user gives the number `5`, the program will produce: `~[1 2 3 4]`.
hoon/hoon-tutorial/lists.md+1−1
@@ -2,9 +2,9 @@
22title = "1.4 Lists"
33weight = 6
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/lists/"]
56+++
67
7−
88# Lists
99
1010A **list** is a type of noun that you'll frequently encounter when reading and writing Hoon. A list can be thought of as an ordered arrangement of zero or more elements terminated by a `~` (null).
hoon/hoon-tutorial/molds.md+1
@@ -2,6 +2,7 @@
22title = "2.3.2 Molds"
33weight = 28
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/molds/"]
56+++
67
78A mold is a function that coerces a noun to a type or crashes.
hoon/hoon-tutorial/nouns.md+1
@@ -2,6 +2,7 @@
22title = "1.2 Nouns"
33weight = 3
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/nouns/"]
56+++
67
78In Urbit, every piece of data is a noun. In order to understand Hoon, one must first understand nouns.
hoon/hoon-tutorial/recursion.md+2
@@ -2,7 +2,9 @@
22title = "1.5.1 Walkthrough: Recursion"
33weight = 9
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/recursion/"]
56+++
7+
68[Recursion](.) is a common pattern for solving certain problems in most programming
79languages, and Hoon is no exception. One of the classically recursive problems
810is that of factorial. The factorial of _n_ is the product of all positive
hoon/hoon-tutorial/setup.md+2
@@ -2,7 +2,9 @@
22title = "1.1 Setup"
33weight = 1
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/setup/"]
56+++
7+
68Before we begin working on Hoon, you should first (1) have Urbit installed and (2) boot a ship that you can use for trying out Hoon examples. Interactive learning is far superior to passive reading.
79
810## What is an urbit?
hoon/hoon-tutorial/structures-and-complex-types.md+2
@@ -2,7 +2,9 @@
22title = "2.3 Structures and Complex Types"
33weight = 27
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/structures-and-complex-types/"]
56+++
7+
68In this lesson we'll talk a little about how type expressions become structures, and how these structures manifest in different ways in different parts of your Hoon code. We'll also talk about how to create your own custom-defined complex types from simpler ones.
79
810## Structures
hoon/hoon-tutorial/the-subject-and-its-legs.md+2
@@ -2,7 +2,9 @@
22title = "1.6 The Subject and Its Legs"
33weight = 13
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/the-subject-and-its-legs/"]
56+++
7+
68Hoon isn't an object-oriented programming language; it's a "subject-oriented" programming language. But what's this "subject"?
79
810## A Start
hoon/hoon-tutorial/trees-sets-and-maps.md+1
@@ -2,6 +2,7 @@
22title = "2.4 Standard Library: Trees, Sets, and Maps"
33weight = 30
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/trees-sets-and-maps/"]
56+++
67
78Along with lists, the Hoon standard library also supports trees, sets, and maps as data structures. A Hoon `tree` is the data structure for a binary tree. A Hoon `set` is the data structure for a set of values. A Hoon `map` is the data structure for a set of `[key value]` pairs.
hoon/hoon-tutorial/type-checking-and-type-inference.md+2
@@ -2,7 +2,9 @@
22title = "2.2 Type Checking and Type Inference"
33weight = 25
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/type-checking-and-type-inference/"]
56+++
7+
68As the Hoon compiler compiles your Hoon code, it does a **type check** on certain expressions to make sure they are guaranteed to produce a value of the correct type. If it cannot be proved that the output value is correctly typed, the compile will fail with a `nest-fail` crash. In order to figure out what type of value is produced by a given expression, the compiler uses **type inference** on that code. In this lesson we'll cover various cases in which a type check is performed, and also how the compiler does type inference on an expression.
79
810## Type Checking
hoon/hoon-tutorial/type-polymorphism.md+2
@@ -2,7 +2,9 @@
22title = "2.5 Type Polymorphism"
33weight = 31
44template = "doc.html"
5+aliases = ["/docs/learn/hoon/hoon-tutorial/type-polymorphism/"]
56+++
7+
68There are many cases in which one may want to write a function that accepts as input various different types of data. Such a function is said to be [polymorphic](https://en.wikipedia.org/wiki/Polymorphism_%28computer_science%29). ("Polymorphism" = "many forms"; so polymorphic functions accept many forms of data as input.)
79
810One relatively trivial form of polymorphism involves sub-typing. A gate whose sample is a raw `noun` can accept any Hoon data structure as input -- it's just that the sample will only be treated as a raw noun. For example, consider the `copy` gate below:
hoon/library/1a.md+1
@@ -2,6 +2,7 @@
22title = "1a: Basic Arithmetic"
33weight = 1
44template = "doc.html"
5+aliases = ["/docs/reference/library/1a"]
56+++
67### `++add`
78
hoon/library/1b.md+1
@@ -2,6 +2,7 @@
22title = "1b: Tree Addressing"
33weight = 2
44template = "doc.html"
5+aliases = ["/docs/reference/library/1b"]
56+++
67Check out the Nock [explanation](@/docs/nock/_index.md) for more
78information on the tree-addressing system.
hoon/library/1c.md+1
@@ -2,6 +2,7 @@
22title = "1c: Molds and Mold-Builders"
33weight = 3
44template = "doc.html"
5+aliases = ["/docs/reference/library/1c"]
56+++
67### `++bloq`
78
hoon/library/2a.md+1
@@ -2,6 +2,7 @@
22title = "2a: Unit Logic"
33weight = 4
44template = "doc.html"
5+aliases = ["/docs/reference/library/2a"]
56+++
67### `++biff`
78
hoon/library/2b.md+1
@@ -2,6 +2,7 @@
22title = "2b: List Logic"
33weight = 5
44template = "doc.html"
5+aliases = ["/docs/reference/library/2b"]
56+++
67### `++fand`
78
hoon/library/2c.md+1
@@ -2,6 +2,7 @@
22title = "2c: Bit Arithmetic"
33weight = 6
44template = "doc.html"
5+aliases = ["/docs/reference/library/2c"]
56+++
67### `++bex`
78
hoon/library/2d.md+1
@@ -2,6 +2,7 @@
22title = "2d: Bit Logic"
33weight = 7
44template = "doc.html"
5+aliases = ["/docs/reference/library/2d"]
56+++
67### `++con`
78
hoon/library/2e.md+1
@@ -2,6 +2,7 @@
22title = "2e: Insecure Hashing"
33weight = 8
44template = "doc.html"
5+aliases = ["/docs/reference/library/2e"]
56+++
67### `++fnv`
78
hoon/library/2f.md+1
@@ -2,6 +2,7 @@
22title = "2f: Noun Ordering"
33weight = 9
44template = "doc.html"
5+aliases = ["/docs/reference/library/2f"]
56+++
67### `++aor`
78
hoon/library/2g.md+1
@@ -2,6 +2,7 @@
22title = "2g: Unsigned Powers"
33weight = 10
44template = "doc.html"
5+aliases = ["/docs/reference/library/2g"]
56+++
67### `++pow`
78
hoon/library/2h.md+1
@@ -2,6 +2,7 @@
22title = "2h: Set Logic"
33weight = 11
44template = "doc.html"
5+aliases = ["/docs/reference/library/2h"]
56+++
67### `++in`
78
hoon/library/2i.md+1
@@ -2,6 +2,7 @@
22title = "2i: Map Logic"
33weight = 12
44template = "doc.html"
5+aliases = ["/docs/reference/library/2i"]
56+++
67### `++by`
78
hoon/library/2j.md+1
@@ -2,6 +2,7 @@
22title = "2j: Jar and Jug Logic"
33weight = 13
44template = "doc.html"
5+aliases = ["/docs/reference/library/2j"]
56+++
67### `++ja`
78
hoon/library/2k.md+1
@@ -2,6 +2,7 @@
22title = "2k: Queue Logic"
33weight = 14
44template = "doc.html"
5+aliases = ["/docs/reference/library/2k"]
56+++
67### `++to`
78
hoon/library/2l.md+1
@@ -2,6 +2,7 @@
22title = "2l: Container from Container"
33weight = 15
44template = "doc.html"
5+aliases = ["/docs/reference/library/2l"]
56+++
67### `++malt`
78
hoon/library/2m.md+1
@@ -2,6 +2,7 @@
22title = "2m: Container from Noun"
33weight = 16
44template = "doc.html"
5+aliases = ["/docs/reference/library/2m"]
56+++
67### `++ly`
78
hoon/library/2n.md+1
@@ -2,6 +2,7 @@
22title = "2n: Functional Hacks"
33weight = 17
44template = "doc.html"
5+aliases = ["/docs/reference/library/2n"]
56+++
67### `++cork`
78
hoon/library/2o.md+1
@@ -2,6 +2,7 @@
22title = "2o: Normalizing Containers"
33weight = 18
44template = "doc.html"
5+aliases = ["/docs/reference/library/2o"]
56+++
67### `++jar`
78
hoon/library/2p.md+1
@@ -2,6 +2,7 @@
22title = "2p: Serialization"
33weight = 19
44template = "doc.html"
5+aliases = ["/docs/reference/library/2p"]
56+++
67### `++cue`
78
hoon/library/2q.md+1
@@ -2,6 +2,7 @@
22title = "2q: Molds and Mold-Builders"
33weight = 20
44template = "doc.html"
5+aliases = ["/docs/reference/library/2q"]
56+++
67### `++char`
78
hoon/library/3a.md+1
@@ -2,6 +2,7 @@
22title = "3a: Modular and Signed Ints"
33weight = 21
44template = "doc.html"
5+aliases = ["/docs/reference/library/3a"]
56+++
67### `++egcd`
78
hoon/library/3b.md+1
@@ -2,6 +2,7 @@
22title = "3b: Floating Point"
33weight = 22
44template = "doc.html"
5+aliases = ["/docs/reference/library/3b"]
56+++
67### `++fn`
78
hoon/library/3c.md+1
@@ -2,6 +2,7 @@
22title = "3c: Urbit Time"
33weight = 23
44template = "doc.html"
5+aliases = ["/docs/reference/library/3c"]
56+++
67### `++yall`
78
hoon/library/3d.md+1
@@ -2,6 +2,7 @@
22title = "3d: SHA Hash Family"
33weight = 24
44template = "doc.html"
5+aliases = ["/docs/reference/library/3d"]
56+++
67### `++shad`
78
hoon/library/3e.md+1
@@ -2,6 +2,7 @@
22title = "3e: AES encryption (Removed)"
33weight = 25
44template = "doc.html"
5+aliases = ["/docs/reference/library/3e"]
56+++
67The standard-library functions in this section have been removed.
78
hoon/library/3f.md+1
@@ -2,6 +2,7 @@
22title = "3f: Scrambling"
33weight = 26
44template = "doc.html"
5+aliases = ["/docs/reference/library/3f"]
56+++
67### `++un`
78
hoon/library/3g.md+1
@@ -2,6 +2,7 @@
22title = "3g: Molds and Mold-Builders"
33weight = 27
44template = "doc.html"
5+aliases = ["/docs/reference/library/3g"]
56+++
67### `++coin`
78
hoon/library/4a.md+1
@@ -2,6 +2,7 @@
22title = "4a: Exotic Bases"
33weight = 28
44template = "doc.html"
5+aliases = ["/docs/reference/library/4a"]
56+++
67### `++po`
78
hoon/library/4b.md+1
@@ -2,6 +2,7 @@
22title = "4b: Text Processing"
33weight = 29
44template = "doc.html"
5+aliases = ["/docs/reference/library/4b"]
56+++
67### `++at`
78
hoon/library/4c.md+1
@@ -2,6 +2,7 @@
22title = "4c: Tank Printer"
33weight = 30
44template = "doc.html"
5+aliases = ["/docs/reference/library/4c"]
56+++
67### `++re`
78
hoon/library/4d.md+1
@@ -2,6 +2,7 @@
22title = "4d: Parsing (Tracing)"
33weight = 31
44template = "doc.html"
5+aliases = ["/docs/reference/library/4d"]
56+++
67### `++last`
78
hoon/library/4e.md+1
@@ -2,6 +2,7 @@
22title = "4e: Parsing (Combinators)"
33weight = 32
44template = "doc.html"
5+aliases = ["/docs/reference/library/4e"]
56+++
67### `++bend`
78
hoon/library/4f.md+1
@@ -2,6 +2,7 @@
22title = "4f: Parsing (Rule-Builders)"
33weight = 33
44template = "doc.html"
5+aliases = ["/docs/reference/library/4f"]
56+++
67### `++bass`
78
hoon/library/4g.md+1
@@ -2,6 +2,7 @@
22title = "4g: Parsing (Outside Caller)"
33weight = 34
44template = "doc.html"
5+aliases = ["/docs/reference/library/4g"]
56+++
67### `++rash`
78
hoon/library/4h.md+1
@@ -2,6 +2,7 @@
22title = "4h: Parsing (ASCII Glyphs)"
33weight = 35
44template = "doc.html"
5+aliases = ["/docs/reference/library/4h"]
56+++
67### `++ace`
78
hoon/library/4i.md+1
@@ -2,6 +2,7 @@
22title = "4i: Parsing (Useful Idioms)"
33weight = 36
44template = "doc.html"
5+aliases = ["/docs/reference/library/4i"]
56+++
67### `++alf`
78
hoon/library/4j.md+1
@@ -2,6 +2,7 @@
22title = "4j: Parsing (Bases and Base Digits)"
33weight = 37
44template = "doc.html"
5+aliases = ["/docs/reference/library/4j"]
56+++
67### `++ab`
78
hoon/library/4k.md+1
@@ -2,6 +2,7 @@
22title = "4k: Atom Printing"
33weight = 38
44template = "doc.html"
5+aliases = ["/docs/reference/library/4k"]
56+++
67### `++co`
78
hoon/library/4l.md+1
@@ -2,6 +2,7 @@
22title = "4l: Atom Parsing"
33weight = 39
44template = "doc.html"
5+aliases = ["/docs/reference/library/4l"]
56+++
67### `++so`
78
hoon/library/4m.md+1
@@ -2,6 +2,7 @@
22title = "4m: Formatting Functions"
33weight = 40
44template = "doc.html"
5+aliases = ["/docs/reference/library/4m"]
56+++
67### `++scot`
78
hoon/library/4n.md+1
@@ -2,6 +2,7 @@
22title = "4n: Virtualization"
33weight = 41
44template = "doc.html"
5+aliases = ["/docs/reference/library/4n"]
56+++
67### `++mack`
78
hoon/library/4o.md+1
@@ -2,6 +2,7 @@
22title = "4o: Molds"
33weight = 42
44template = "doc.html"
5+aliases = ["/docs/reference/library/4o"]
56+++
67### `++abel`
78
hoon/library/5a.md+1
@@ -2,5 +2,6 @@
22title = "5a: Compiler Utilities"
33weight = 43
44template = "doc.html"
5+aliases = ["/docs/reference/library/5a"]
56+++
67(To be documented)
hoon/library/5b.md+1
@@ -2,5 +2,6 @@
22title = "5b: Macro Expansion"
33weight = 44
44template = "doc.html"
5+aliases = ["/docs/reference/library/5b"]
56+++
67(To be documented)
hoon/library/5c.md+1
@@ -2,5 +2,6 @@
22title = "5c: Compiler Backend & Prettyprinter"
33weight = 45
44template = "doc.html"
5+aliases = ["/docs/reference/library/5c"]
56+++
67(To be documented)
hoon/library/5d.md+1
@@ -2,5 +2,6 @@
22title = "5d: Parser"
33weight = 46
44template = "doc.html"
5+aliases = ["/docs/reference/library/5d"]
56+++
67(To be documented)
hoon/library/5e.md+1
@@ -2,5 +2,6 @@
22title = "5e: Caching Compiler"
33weight = 47
44template = "doc.html"
5+aliases = ["/docs/reference/library/5e"]
56+++
67(To be documented)
hoon/library/5f.md+1
@@ -2,6 +2,7 @@
22title = "5f: Molds and Mold-Builders"
33weight = 48
44template = "doc.html"
5+aliases = ["/docs/reference/library/5f"]
56+++
67### `++mane`
78
hoon/library/5g.md+1
@@ -2,5 +2,6 @@
22title = "5g: profiling support"
33weight = 49
44template = "doc.html"
5+aliases = ["/docs/reference/library/5g"]
56+++
67(To be documented)
hoon/library/_index.md+1
@@ -3,6 +3,7 @@ title = "Standard library"
33weight = 2
44sort_by = "weight"
55template = "sections/docs/chapters.html"
6+aliases = ["/docs/reference/library/"]
67+++
78
89Documentation for the standard library.
hoon/library/table-of-contents.md+1
@@ -2,6 +2,7 @@
22title = "Table of Contents"
33weight = 0
44template = "doc.html"
5+aliases = ["/docs/reference/library/"]
56+++
67
78Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
hoon/library/zuse.md+2−3
@@ -2,10 +2,9 @@
22title = "Zuse"
33weight = 50
44template = "doc.html"
5+aliases = ["docs/reference/library/zuse/"]
56+++
67_Zuse_ is a defined interface for vanes. It contains the part of the Hoon
78standard library that is specific to Arvo functionality.
89
9−Zuse is located in `/home/sys/zuse.hoon` within your urbit.
10−
11−;list;
10+Zuse is located in `/home/sys/zuse.hoon` within your urbit.
hoon/style.md+1
@@ -2,6 +2,7 @@
22title = "Hoon Style Guide"
33weight = 3
44template = "doc.html"
5+aliases = ["docs/learn/hoon/style/"]
56+++
67Welcome to the Hoon style guide. It's important to familiarize yourself with our way of writing Hoon code.
78
hoon/workbook/_index.md+1
@@ -3,6 +3,7 @@ title = "Hoon Workbook"
33weight = 2
44sort_by = "weight"
55template = "sections/docs/chapters.html"
6+aliase = ["docs/learn/hoon/workbook/"]
67+++
78The Workbook is the place to sharpen your Hoon skills. Each entry in the
89Workbook is a code walkthrough followed by exercises.
hoon/workbook/bomb.md+1
@@ -2,6 +2,7 @@
22title = "Bomb Defusing"
33weight = 7
44template = "doc.html"
5+aliases = ["docs/learn/hoon/workbook/bomb"]
56+++
67In this exercise, we will build a generator that takes a list of wires to be cut
78in order to defuse a bomb. The bomb is defused according to the following rules.
hoon/workbook/digits.md+1
@@ -2,6 +2,7 @@
22title = "Digits"
33weight = 4
44template = "doc.html"
5+aliases = ["docs/learn/hoon/workbook/digits/]
56+++
67Let's write a generator that takes a `@ud` (unsigned decimal) and returns a list
78of its digits.
hoon/workbook/eightball.md+1
@@ -2,6 +2,7 @@
22title = "Magic 8-Ball"
33weight = 5
44template = "doc.html"
5+aliases = ["docs/learn/hoon/workbook/eightball"]
56+++
67In this lesson we'll write a generator that mimics the functionality of a
78Magic 8-Ball, producing a randomized response with each run.
hoon/workbook/traffic-light.md+1
@@ -2,6 +2,7 @@
22title = "Traffic Light"
33weight = 6
44template = "doc.html"
5+aliases = ["docs/learn/hoon/workbook/traffic-light/"]
56+++
67Let's create a state machine in Hoon that models the functionality of a traffic
78light. Save the code below as `traffic.hoon` in your `/gen` directory.
nock/_index.md+1
@@ -3,6 +3,7 @@ title = "Nock"
33weight = 3
44sort_by = "weight"
55template = "sections/docs/chapters.html"
6+aliases = ["docs/learn/nock/"]
67+++
78> Last major revision of this tutorial: 2016. Minor revisions were made in October 2018 to bring it in line with the new Nock 4K spec.
89
nock/definition.md+1−1
@@ -2,7 +2,7 @@
22title = "Nock Definition"
33weight = 1
44template = "doc.html"
5−aliases = ["/docs/nock/definition/"]
5+aliases = ["docs/learn/nock/definition/"]
66+++
77
88Nock is a Turing-complete function that maps a cell
nock/example.md+1
@@ -2,6 +2,7 @@
22title = "Example"
33weight = 3
44template = "doc.html"
5+aliases = ["docs/learn/nock/example"]
56+++
67Some people write assembly language by hand. Some of them have a
78good reason to do so. But there's no good reason to write Nock by
nock/explanation.md+2
@@ -2,7 +2,9 @@
22title = "Explanation"
33weight = 2
44template = "doc.html"
5+aliases = ["docs/learn/nock/explanation"]
56+++
7+
68To make Nock make sense, let's work through the spec line by line.
79First the data model:
810
nock/implementations.md+1
@@ -2,6 +2,7 @@
22title = "Implementations"
33weight = 4
44template = "doc.html"
5+aliases = ["docs/learn/nock/implementations"]
56+++
67We use a C implementation for our Nock interpreter. But building a Nock interpreter in another language is a fun exercise. Check out our community Nock implementations, shown below our official C implementation. (Note: the community implementations were written for a slightly older version of Nock, Nock 5K. The current version is Nock 4K.):
78
vere/_index.md+1
@@ -3,6 +3,7 @@ title = "Vere"
33weight = 4
44sort_by = "weight"
55template = "sections/docs/chapters.html"
6+aliases = ["/docs/learn/vere/"]
67+++
78The Nock runtime system, written in C.
89
vere/api.md+1
@@ -2,6 +2,7 @@
22title = "API overview by prefix"
33weight = 4
44template = "doc.html"
5+aliases = ["/docs/learn/vere/api"]
56+++
67Let's run through the `u3` modules one by one. All public
78functions are commented, but the comments may be cryptic.
vere/c.md+1
@@ -2,6 +2,7 @@
22title = "C in Urbit"
33weight = 4
44template = "doc.html"
5+aliases = ["/docs/learn/vere/c"]
56+++
67Under `u3` is the simple `c3` layer, which is just how we write C
78in Urbit.
vere/jetting.md+1
@@ -2,6 +2,7 @@
22title = "Writing Jets"
33weight = 5
44template = "doc.html"
5+aliases = ["/docs/learn/vere/jetting/"]
56+++
67A guide for new Urbit developers.
78
vere/nouns.md+1
@@ -2,6 +2,7 @@
22title = "Land of Nouns"
33weight = 3
44template = "doc.html"
5+aliases = ["/docs/learn/vere/nouns"]
56+++
67The division between `c3` and `u3` is that you could theoretically
78imagine using `c3` as just a generic C environment. Anything to do
vere/runtime.md+1−1
@@ -2,7 +2,7 @@
22title = "C Runtime System"
33weight = 1
44template = "doc.html"
5−aliases = ["docs/about/runtime/"]
5+aliases = ["docs/about/runtime/", "/docs/learn/vere/runtime"]
66+++
77
88The Urbit interpreter is built on a Nock runtime system written