on master help sign in
Set anchors to appear to the right for all tutorials
3bce308Yaseen
tutorials/arvo/ames.md+1−1
@@ -3,7 +3,7 @@ title = "Ames"
3weight = 2
3weight = 2
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/arvo/ames/"]
5aliases = ["/docs/learn/arvo/ames/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8Our networking protocol.
8Our networking protocol.
9
9
tutorials/arvo/arvo.md+1−1
@@ -3,7 +3,7 @@ title = "Arvo"
3weight = 1
3weight = 1
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/arvo/arvo/"]
5aliases = ["/docs/learn/arvo/arvo/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9Arvo, also called Urbit OS, is our operating system.
9Arvo, also called Urbit OS, is our operating system.
tutorials/arvo/behn.md+1−1
@@ -2,7 +2,7 @@
2title = "Behn"
2title = "Behn"
3weight = 3
3weight = 3
4template = "doc.html"
4template = "doc.html"
5−insert_anchor_links = "none"
5+insert_anchor_links = "right"
6+++
6+++
7Our simple timer.
7Our simple timer.
8
8
tutorials/arvo/clay.md+1−1
@@ -3,7 +3,7 @@ title = "Clay"
3weight = 4
3weight = 4
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/arvo/clay/"]
5aliases = ["/docs/learn/arvo/clay/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9
9
tutorials/arvo/dill.md+1−1
@@ -3,7 +3,7 @@ title = "Dill"
3weight = 5
3weight = 5
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/arvo/dill/"]
5aliases = ["/docs/learn/arvo/dill/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8Our terminal driver.
8Our terminal driver.
9
9
tutorials/arvo/eyre.md+1−1
@@ -3,7 +3,7 @@ title = "Eyre"
3weight = 6
3weight = 6
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/arvo/eyre/"]
5aliases = ["/docs/learn/arvo/eyre/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9*Current docs on Eyre are out of date. Until they are updated this doc remains for historical purposes*
9*Current docs on Eyre are out of date. Until they are updated this doc remains for historical purposes*
tutorials/arvo/ford.md+1−1
@@ -3,7 +3,7 @@ title = "Ford Fusion"
3weight = 7
3weight = 7
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/arvo/ford/"]
5aliases = ["/docs/learn/arvo/ford/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9> This document is out of date as of 2020.07.20. In the meantime, see the [blog
9> This document is out of date as of 2020.07.20. In the meantime, see the [blog
tutorials/arvo/gall.md+1−1
@@ -3,7 +3,7 @@ title = "Gall Apps"
3weight = 8
3weight = 8
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/arvo/gall/"]
5aliases = ["/docs/learn/arvo/gall/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9This document describes Gall, the Arvo userspace vane. It is split into two main
9This document describes Gall, the Arvo userspace vane. It is split into two main
tutorials/arvo/move-trace.md+1−1
@@ -2,7 +2,7 @@
2title = "Move trace"
2title = "Move trace"
3weight = 12
3weight = 12
4template = "doc.html"
4template = "doc.html"
5−insert_anchor_links = "none"
5+insert_anchor_links = "right"
6+++
6+++
7
7
8In this tutorial we will run a simple "move trace" and use the output to get a
8In this tutorial we will run a simple "move trace" and use the output to get a
tutorials/concepts/arch.md+1−1
@@ -2,7 +2,7 @@
2title = "Landscape Architecture"
2title = "Landscape Architecture"
3weight = 4
3weight = 4
4template = "doc.html"
4template = "doc.html"
5−insert_anchor_links = "none"
5+insert_anchor_links = "right"
6+++
6+++
7
7
8# Landscape Architecture
8# Landscape Architecture
tutorials/concepts/azimuth.md+1−1
@@ -3,7 +3,7 @@ title = "Azimuth"
3weight = 4
3weight = 4
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/azimuth"]
5aliases = ["/docs/learn/azimuth"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8Azimuth is a general-purpose public-key infrastructure (PKI) on the Ethereum blockchain, used as a platform for _Urbit identities_. You need such an identity to use the Arvo network.
8Azimuth is a general-purpose public-key infrastructure (PKI) on the Ethereum blockchain, used as a platform for _Urbit identities_. You need such an identity to use the Arvo network.
9
9
tutorials/concepts/technical-overview.md+1−1
@@ -3,7 +3,7 @@ title = "Technical overview"
3weight = 1
3weight = 1
4template = "doc.html"
4template = "doc.html"
5aliases = ["/understanding-urbit/technical-overview"]
5aliases = ["/understanding-urbit/technical-overview"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9Urbit is a clean-slate software stack designed to implement an encrypted P2P
9Urbit is a clean-slate software stack designed to implement an encrypted P2P
tutorials/creating-an-invite-pool.md+1−1
@@ -2,7 +2,7 @@
2title = "Creating an Invite Pool"
2title = "Creating an Invite Pool"
3weight = 9
3weight = 9
4template = "doc.html"
4template = "doc.html"
5−insert_anchor_links = "none"
5+insert_anchor_links = "right"
6+++
6+++
7
7
8If you're a star owner, you have the ability to create **invite pools**. These invite pools let you give your friends a piece of the network in the form of planets. This document will give you an explanation of how to create an invite pool and how to share it with your friends using our tool [Bridge](https://bridge.urbit.org).
8If you're a star owner, you have the ability to create **invite pools**. These invite pools let you give your friends a piece of the network in the form of planets. This document will give you an explanation of how to create an invite pool and how to share it with your friends using our tool [Bridge](https://bridge.urbit.org).
tutorials/guide-to-breaches.md+1−1
@@ -2,7 +2,7 @@
2title = "Guide to Breaches"
2title = "Guide to Breaches"
3weight = 10
3weight = 10
4template = "doc.html"
4template = "doc.html"
5−insert_anchor_links = "none"
5+insert_anchor_links = "right"
6+++
6+++
7
7
8An important concept on the [Ames](@/docs/tutorials/arvo/ames.md) network is that of continuity. Continuity refers to how ships remember the order of their own network messages and the network messages of others -- these messages are numbered, starting from zero. A _breach_ is when ships on the network agree to forget about this sequence and treat one or more ships like they are brand new.
8An important concept on the [Ames](@/docs/tutorials/arvo/ames.md) network is that of continuity. Continuity refers to how ships remember the order of their own network messages and the network messages of others -- these messages are numbered, starting from zero. A _breach_ is when ships on the network agree to forget about this sequence and treat one or more ships like they are brand new.
tutorials/hoon/cli-tutorial.md+1−1
@@ -2,7 +2,7 @@
2title = "CLI apps"
2title = "CLI apps"
3weight = 2
3weight = 2
4template = "doc.html"
4template = "doc.html"
5−insert_anchor_links = "none"
5+insert_anchor_links = "right"
6+++
6+++
7
7
8## Introduction
8## Introduction
tutorials/hoon/graph.md+1−1
@@ -2,7 +2,7 @@
2title = "Graph Store"
2title = "Graph Store"
3weight = 3
3weight = 3
4template = "doc.html"
4template = "doc.html"
5−insert_anchor_links = "none"
5+insert_anchor_links = "right"
6+++
6+++
7
7
8# What is Graph Store?
8# What is Graph Store?
tutorials/hoon/hoon-errors.md+1−1
@@ -2,7 +2,7 @@
2title = "Hoon Errors"
2title = "Hoon Errors"
3weight = 12
3weight = 12
4template = "doc.html"
4template = "doc.html"
5−insert_anchor_links = "none"
5+insert_anchor_links = "right"
6+++
6+++
7
7
8In this section we explore strategies for debugging and understanding what your
8In this section we explore strategies for debugging and understanding what your
tutorials/hoon/hoon-school/ackermann.md+1−1
@@ -3,7 +3,7 @@ title = "1.6.1 Walkthrough: Ackermann Function"
3weight = 14
3weight = 14
4template = "doc.html"
4template = "doc.html"
5aliases = ["docs/learn/hoon/hoon-tutorial/ackermann/"]
5aliases = ["docs/learn/hoon/hoon-tutorial/ackermann/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9The 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.
9The 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.
tutorials/hoon/hoon-school/aqua.md+1−1
@@ -2,7 +2,7 @@
2title = "Writing Aqua Tests"
2title = "Writing Aqua Tests"
3weight = 37
3weight = 37
4template = "doc.html"
4template = "doc.html"
5−insert_anchor_links = "none"
5+insert_anchor_links = "right"
6+++
6+++
7
7
8# Concepts
8# Concepts
tutorials/hoon/hoon-school/arms-and-cores.md+1−1
@@ -3,7 +3,7 @@ title = "1.7 Arms and Cores"
3weight = 15
3weight = 15
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/arms-and-cores/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/arms-and-cores/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8The Hoon subject is a [noun](/docs/glossary/noun/). Each fragment of this [noun](/docs/glossary/noun/) is either an [arm](/docs/glossary/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](/docs/glossary/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](/docs/glossary/core/)'.
8The Hoon subject is a [noun](/docs/glossary/noun/). Each fragment of this [noun](/docs/glossary/noun/) is either an [arm](/docs/glossary/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](/docs/glossary/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](/docs/glossary/core/)'.
9
9
tutorials/hoon/hoon-school/atoms-auras-and-simple-cell-types.md+1−1
@@ -3,7 +3,7 @@ title = "2.1 Atoms, Auras, and Simple Cell Types"
3weight = 24
3weight = 24
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/atoms-auras-and-simple-cell-types/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/atoms-auras-and-simple-cell-types/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8Like 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.
8Like 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.
9
9
tutorials/hoon/hoon-school/bank-account.md+1−1
@@ -3,7 +3,7 @@ title = "1.8.1 Bank Account"
3weight = 17
3weight = 17
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/bank-account/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/bank-account/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9In this lesson, we will write a [door](/docs/glossary/door/) that can act as a bank account with the ability to withdraw, deposit, and check the account's balance.
9In this lesson, we will write a [door](/docs/glossary/door/) that can act as a bank account with the ability to withdraw, deposit, and check the account's balance.
tutorials/hoon/hoon-school/behn.md+1−1
@@ -2,7 +2,7 @@
2title = "2.6 Behn"
2title = "2.6 Behn"
3weight = 34
3weight = 34
4template = "doc.html"
4template = "doc.html"
5−insert_anchor_links = "none"
5+insert_anchor_links = "right"
6+++
6+++
7
7
8In 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.
8In 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.
tutorials/hoon/hoon-school/caesar.md+1−1
@@ -3,7 +3,7 @@ title = "1.7.1 Walkthrough: Caesar Cipher"
3weight = 16
3weight = 16
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/caesar/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/caesar/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9A Caesar cipher is a very simple way to obfuscate a message. The technique
9A Caesar cipher is a very simple way to obfuscate a message. The technique
tutorials/hoon/hoon-school/conditionals.md+1−1
@@ -3,7 +3,7 @@ title = "1.3.1 Walkthrough: Conditionals"
3weight = 5
3weight = 5
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/conditionals/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/conditionals/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9In 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.
9In 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.
tutorials/hoon/hoon-school/doors.md+1−1
@@ -3,7 +3,7 @@ title = "1.8 Doors"
3weight = 16
3weight = 16
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/doors/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/doors/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9It's useful to have [cores](/docs/glossary/core/) whose [arms](/docs/glossary/arm/) evaluate to make [gates](/docs/glossary/gate/). 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.
9It's useful to have [cores](/docs/glossary/core/) whose [arms](/docs/glossary/arm/) evaluate to make [gates](/docs/glossary/gate/). 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.
tutorials/hoon/hoon-school/egg-timer.md+1−1
@@ -3,7 +3,7 @@ title = "2.7.1 Gall Walkthrough: Egg Timer"
3weight = 36
3weight = 36
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/egg-timer/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/egg-timer/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9The 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.
9The 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.
tutorials/hoon/hoon-school/fibonacci.md+1−1
@@ -3,7 +3,7 @@ title = "1.5.1 Walkthrough: Fibonacci Sequence"
3weight = 9
3weight = 9
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/fibonacci/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/fibonacci/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9In this example, we will write a generator that produces a list of [Fibonacci numbers](https://en.wikipedia.org/wiki/Fibonacci_number) up to `n`.
9In this example, we will write a generator that produces a list of [Fibonacci numbers](https://en.wikipedia.org/wiki/Fibonacci_number) up to `n`.
tutorials/hoon/hoon-school/gall.md+1−1
@@ -3,7 +3,7 @@ title = "2.7 Gall"
3weight = 35
3weight = 35
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/gall/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/gall/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9Gall is the Arvo vane responsible for handling user space applications. When writing a Gall application there are several things you will need to understand.
9Gall is the Arvo vane responsible for handling user space applications. When writing a Gall application there are several things you will need to understand.
tutorials/hoon/hoon-school/gates.md+1−1
@@ -3,7 +3,7 @@ title = "1.4 Gates (Hoon Functions)"
3weight = 6
3weight = 6
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/gates/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/gates/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9In this lesson you're going to learn about Hoon functions.
9In this lesson you're going to learn about Hoon functions.
tutorials/hoon/hoon-school/generators.md+1−1
@@ -3,7 +3,7 @@ title = "1.9 Generators"
3weight = 19
3weight = 19
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/generators/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/generators/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9Generators are the most straightforward way to write programs for Urbit. They
9Generators are the most straightforward way to write programs for Urbit. They
tutorials/hoon/hoon-school/hoon-syntax.md+1−1
@@ -3,7 +3,7 @@ title = "1.3 Hoon Syntax"
3weight = 4
3weight = 4
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/hoon-syntax/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/hoon-syntax/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9The study of Hoon can be divided into two parts: syntax and semantics.
9The study of Hoon can be divided into two parts: syntax and semantics.
tutorials/hoon/hoon-school/iron-polymorphism.md+1−1
@@ -3,7 +3,7 @@ title = "2.5.1 Walkthrough: Iron Polymorphism and Wet Polymorphism"
3weight = 32
3weight = 32
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/iron-polymorphism/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/iron-polymorphism/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9Polymorphism 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](/docs/glossary/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.
9Polymorphism 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](/docs/glossary/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.
tutorials/hoon/hoon-school/lead-polymorphism.md+1−1
@@ -3,7 +3,7 @@ title = "2.5.2 Walkthrough: Lead Polymorphism"
3weight = 33
3weight = 33
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/lead-polymorphism/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/lead-polymorphism/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9There are four kinds of [cores](/docs/glossary/core/): 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.
9There are four kinds of [cores](/docs/glossary/core/): 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.
tutorials/hoon/hoon-school/libraries.md+1−1
@@ -3,7 +3,7 @@ title = "2.3.1 Walkthrough: Libraries"
3weight = 28
3weight = 28
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/libraries/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/libraries/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9In 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](/docs/glossary/core/) below builds such a library, and can be accessed by programs.
9In 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](/docs/glossary/core/) below builds such a library, and can be accessed by programs.
tutorials/hoon/hoon-school/list-of-numbers.md+1−1
@@ -3,7 +3,7 @@ title = "1.1.1 Walkthrough: List of Numbers"
3weight = 2
3weight = 2
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/list-of-numbers/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/list-of-numbers/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9This 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.
9This 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.
tutorials/hoon/hoon-school/lists.md+1−1
@@ -3,7 +3,7 @@ title = "1.5 Lists"
3weight = 8
3weight = 8
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/lists/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/lists/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9A **list** is a type of [noun](/docs/glossary/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).
9A **list** is a type of [noun](/docs/glossary/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).
tutorials/hoon/hoon-school/molds.md+1−1
@@ -3,7 +3,7 @@ title = "2.3.2 Molds"
3weight = 28
3weight = 28
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/molds/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/molds/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9A mold is an idempotent function that coerces a [noun](/docs/glossary/noun/) to
9A mold is an idempotent function that coerces a [noun](/docs/glossary/noun/) to
tutorials/hoon/hoon-school/nouns.md+1−1
@@ -3,7 +3,7 @@ title = "1.2 Nouns"
3weight = 3
3weight = 3
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/nouns/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/nouns/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9In Urbit, every piece of data is a [noun](/docs/glossary/noun/). In order to understand Hoon, one must first understand nouns.
9In Urbit, every piece of data is a [noun](/docs/glossary/noun/). In order to understand Hoon, one must first understand nouns.
tutorials/hoon/hoon-school/recursion.md+1−1
@@ -3,7 +3,7 @@ title = "1.4.1 Walkthrough: Recursion"
3weight = 7
3weight = 7
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/recursion/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/recursion/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9[Recursion](.) is a common pattern for solving certain problems in most programming
9[Recursion](.) is a common pattern for solving certain problems in most programming
tutorials/hoon/hoon-school/setup.md+1−1
@@ -3,7 +3,7 @@ title = "1.1 Setup"
3weight = 1
3weight = 1
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/setup/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/setup/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9Before 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.
9Before 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.
tutorials/hoon/hoon-school/structures-and-complex-types.md+1−1
@@ -3,7 +3,7 @@ title = "2.3 Structures and Complex Types"
3weight = 27
3weight = 27
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/structures-and-complex-types/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/structures-and-complex-types/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9In 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.
9In 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.
tutorials/hoon/hoon-school/style.md+1−1
@@ -3,7 +3,7 @@ title = "Appendix: Hoon Style Guide"
3weight = 100
3weight = 100
4template = "doc.html"
4template = "doc.html"
5aliases = ["docs/learn/hoon/style/"]
5aliases = ["docs/learn/hoon/style/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9Welcome to the Hoon style guide. It’s important to familiarize yourself with our way of writing Hoon code.
9Welcome to the Hoon style guide. It’s important to familiarize yourself with our way of writing Hoon code.
tutorials/hoon/hoon-school/the-subject-and-its-legs.md+1−1
@@ -3,7 +3,7 @@ title = "1.6 The Subject and Its Legs"
3weight = 13
3weight = 13
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/the-subject-and-its-legs/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/the-subject-and-its-legs/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9Hoon isn't an object-oriented programming language; it's a "subject-oriented" programming language. But what's this "subject"?
9Hoon isn't an object-oriented programming language; it's a "subject-oriented" programming language. But what's this "subject"?
tutorials/hoon/hoon-school/trees-sets-and-maps.md+1−1
@@ -3,7 +3,7 @@ title = "2.4 Standard Library: Trees, Sets, and Maps"
3weight = 30
3weight = 30
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/trees-sets-and-maps/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/trees-sets-and-maps/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9Along 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.
9Along 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.
tutorials/hoon/hoon-school/type-checking-and-type-inference.md+1−1
@@ -3,7 +3,7 @@ title = "2.2 Type Checking and Type Inference"
3weight = 25
3weight = 25
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/type-checking-and-type-inference/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/type-checking-and-type-inference/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9As 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.
9As 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.
tutorials/hoon/hoon-school/type-polymorphism.md+1−1
@@ -3,7 +3,7 @@ title = "2.5 Type Polymorphism"
3weight = 31
3weight = 31
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/hoon/hoon-tutorial/type-polymorphism/"]
5aliases = ["/docs/learn/hoon/hoon-tutorial/type-polymorphism/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9There 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.)
9There 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.)
tutorials/hoon/parsing.md+1−1
@@ -2,7 +2,7 @@
2title = "Parsing"
2title = "Parsing"
3weight = 3
3weight = 3
4template = "doc.html"
4template = "doc.html"
5−insert_anchor_links = "none"
5+insert_anchor_links = "right"
6+++
6+++
7
7
8# Parsing Tutorial
8# Parsing Tutorial
tutorials/hoon/workbook/bomb.md+1−1
@@ -3,7 +3,7 @@ title = "Bomb Defusing"
3weight = 7
3weight = 7
4template = "doc.html"
4template = "doc.html"
5aliases = ["docs/learn/hoon/workbook/bomb"]
5aliases = ["docs/learn/hoon/workbook/bomb"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8In this exercise, we will build a generator that takes a list of wires to be cut
8In this exercise, we will build a generator that takes a list of wires to be cut
9in order to defuse a bomb. The bomb is defused according to the following rules.
9in order to defuse a bomb. The bomb is defused according to the following rules.
tutorials/hoon/workbook/digits.md+1−1
@@ -3,7 +3,7 @@ title = "Digits"
3weight = 4
3weight = 4
4template = "doc.html"
4template = "doc.html"
5aliases = ["docs/learn/hoon/workbook/digits/"]
5aliases = ["docs/learn/hoon/workbook/digits/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8Let's write a generator that takes a `@ud` (unsigned decimal) and returns a list
8Let's write a generator that takes a `@ud` (unsigned decimal) and returns a list
9of its digits.
9of its digits.
tutorials/hoon/workbook/eightball.md+1−1
@@ -3,7 +3,7 @@ title = "Magic 8-Ball"
3weight = 5
3weight = 5
4template = "doc.html"
4template = "doc.html"
5aliases = ["docs/learn/hoon/workbook/eightball"]
5aliases = ["docs/learn/hoon/workbook/eightball"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8In this lesson we'll write a generator that mimics the functionality of a
8In this lesson we'll write a generator that mimics the functionality of a
9Magic 8-Ball, producing a randomized response with each run.
9Magic 8-Ball, producing a randomized response with each run.
tutorials/hoon/workbook/traffic-light.md+1−1
@@ -3,7 +3,7 @@ title = "Traffic Light"
3weight = 6
3weight = 6
4template = "doc.html"
4template = "doc.html"
5aliases = ["docs/learn/hoon/workbook/traffic-light/"]
5aliases = ["docs/learn/hoon/workbook/traffic-light/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8Let's create a state machine in Hoon that models the functionality of a traffic
8Let's create a state machine in Hoon that models the functionality of a traffic
9light. Save the code below as `traffic.hoon` in your `/gen` directory.
9light. Save the code below as `traffic.hoon` in your `/gen` directory.
tutorials/nock/definition.md+1−1
@@ -3,7 +3,7 @@ title = "Nock Definition"
3weight = 1
3weight = 1
4template = "doc.html"
4template = "doc.html"
5aliases = ["docs/learn/nock/definition/"]
5aliases = ["docs/learn/nock/definition/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9Nock is a Turing-complete function that maps a cell
9Nock is a Turing-complete function that maps a cell
tutorials/nock/example.md+1−1
@@ -3,7 +3,7 @@ title = "Example"
3weight = 3
3weight = 3
4template = "doc.html"
4template = "doc.html"
5aliases = ["docs/learn/nock/example"]
5aliases = ["docs/learn/nock/example"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8Some people write assembly language by hand. Some of them have a
8Some people write assembly language by hand. Some of them have a
9good reason to do so. But there's no good reason to write Nock by
9good reason to do so. But there's no good reason to write Nock by
tutorials/nock/explanation.md+1−1
@@ -3,7 +3,7 @@ title = "Explanation"
3weight = 2
3weight = 2
4template = "doc.html"
4template = "doc.html"
5aliases = ["docs/learn/nock/explanation"]
5aliases = ["docs/learn/nock/explanation"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9To make Nock make sense, let's work through the spec line by line.
9To make Nock make sense, let's work through the spec line by line.
tutorials/nock/implementations.md+1−1
@@ -2,7 +2,7 @@
2title = "Implementations"
2title = "Implementations"
3weight = 4
3weight = 4
4template = "doc.html"
4template = "doc.html"
5−insert_anchor_links = "none"
5+insert_anchor_links = "right"
6+++
6+++
7
7
8We 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.):
8We 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.):
tutorials/ship-troubleshooting.md+1−1
@@ -3,7 +3,7 @@ title = "Ship Troubleshooting"
3weight = 8
3weight = 8
4template = "doc.html"
4template = "doc.html"
5aliases = ["docs/using/ship-troubleshooting/"]
5aliases = ["docs/using/ship-troubleshooting/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9Urbit 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're running it. That's ok! This document is intended to help you in such an event.
9Urbit 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're running it. That's ok! This document is intended to help you in such an event.
tutorials/vere/api.md+1−1
@@ -3,7 +3,7 @@ title = "API overview by prefix"
3weight = 4
3weight = 4
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/vere/api"]
5aliases = ["/docs/learn/vere/api"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8Let's run through the `u3` modules one by one. All public
8Let's run through the `u3` modules one by one. All public
9functions are commented, but the comments may be cryptic.
9functions are commented, but the comments may be cryptic.
tutorials/vere/c.md+1−1
@@ -3,7 +3,7 @@ title = "C in Urbit"
3weight = 4
3weight = 4
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/vere/c"]
5aliases = ["/docs/learn/vere/c"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8Under `u3` is the simple `c3` layer, which is just how we write C
8Under `u3` is the simple `c3` layer, which is just how we write C
9in Urbit.
9in Urbit.
tutorials/vere/jetting.md+1−1
@@ -3,7 +3,7 @@ title = "Writing Jets"
3weight = 5
3weight = 5
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/vere/jetting/"]
5aliases = ["/docs/learn/vere/jetting/"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8A guide for new Urbit developers.
8A guide for new Urbit developers.
9
9
tutorials/vere/nouns.md+1−1
@@ -3,7 +3,7 @@ title = "Land of Nouns"
3weight = 3
3weight = 3
4template = "doc.html"
4template = "doc.html"
5aliases = ["/docs/learn/vere/nouns"]
5aliases = ["/docs/learn/vere/nouns"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8The division between `c3` and `u3` is that you could theoretically
8The division between `c3` and `u3` is that you could theoretically
9imagine using `c3` as just a generic C environment. Anything to do
9imagine using `c3` as just a generic C environment. Anything to do
tutorials/vere/runtime.md+1−1
@@ -3,7 +3,7 @@ title = "C Runtime System"
3weight = 1
3weight = 1
4template = "doc.html"
4template = "doc.html"
5aliases = ["docs/about/runtime/", "/docs/learn/vere/runtime"]
5aliases = ["docs/about/runtime/", "/docs/learn/vere/runtime"]
6−insert_anchor_links = "none"
6+insert_anchor_links = "right"
7+++
7+++
8
8
9The Urbit interpreter is built on a Nock runtime system written
9The Urbit interpreter is built on a Nock runtime system written