@@ -1,6 +1,6 @@
2navhome: /docs/
2navhome: /docs/
5title: Concepts
5title: Concepts
@@ -27,7 +27,7 @@ mean `span`, or `mold`, or `mark`, or possibly all three.
27Other common programming concepts used only informally in Hoon
27Other common programming concepts used only informally in Hoon
28are "function," "object," "event," "expression," "variable,"
28are "function," "object," "event," "expression," "variable,"
29"label," "closure", "environment," "scope," and probably a few
29"label," "closure", "environment," "scope," and probably a few
30−more. We do use these words informally, but we're always making
30+more. We do use these words informally, but we're always making
31an analogy whose precision depends on context.
31an analogy whose precision depends on context.
33Hoon has concepts *like* all these abstractions, but they remain
33Hoon has concepts *like* all these abstractions, but they remain
@@ -51,7 +51,7 @@ simpler (Lisp atoms effectively have dynamic type bits).
52The simplest noun syntax uses brackets, like `[a b]` for the cell
52The simplest noun syntax uses brackets, like `[a b]` for the cell
53of `a` and `b`. Brackets nest right; `[a b c d]` is `[a [b [c
53of `a` and `b`. Brackets nest right; `[a b c d]` is `[a [b [c
54−d]]]`. You'll also see braces: `{a b c d}`.
54+d]]]`. You'll also see braces: `{a b c d}`.
56A noun list, by convention, points right and is zero-terminated.
56A noun list, by convention, points right and is zero-terminated.
57Hoon uses tuples (improper nouns) more freely than Lisp; only
57Hoon uses tuples (improper nouns) more freely than Lisp; only
@@ -64,7 +64,7 @@ etc, this refers to the integer `0x6f.6f66`, aka `7.303.014`.
65One common operation on nouns is `slot`, a tree addressing
65One common operation on nouns is `slot`, a tree addressing
66scheme which maps an atom to a subtree. The whole noun is slot
66scheme which maps an atom to a subtree. The whole noun is slot
67−`1`; the left child of `n` is `2n`, the right child `2n+1`.
67+`1`; the left child of `n` is `2n`, the right child `2n+1`.
69Nothing in Nock, Hoon or Urbit can create cycles in a noun or
69Nothing in Nock, Hoon or Urbit can create cycles in a noun or
70detect pointer equivalence. Nouns are generally implemented
70detect pointer equivalence. Nouns are generally implemented
@@ -164,7 +164,7 @@ formula. The gate's argument is its *sample*; the result is its
164### `core` (object)
164### `core` (object)
166A `core` has no exact equivalent in conventional languages, but
166A `core` has no exact equivalent in conventional languages, but
167−the closest equivalent is an object. An object has methods; a
167+the closest equivalent is an object. An object has methods; a
168core has functionally computed attributes (*arms*). An arm that
168core has functionally computed attributes (*arms*). An arm that
169produces a gate is the Hoon equivalent of a conventional method;
169produces a gate is the Hoon equivalent of a conventional method;
170think of it as a computed attribute whose value is a lambda.
170think of it as a computed attribute whose value is a lambda.
@@ -201,7 +201,7 @@ whose value is of type `atom`; it's a subtree of type `foo:atom`.
202### `limb` (attribute or variable reference)
202### `limb` (attribute or variable reference)
204−A [`limb`](../twig/limb/limb), like `foo`, is Hoon's equivalent of a variable
204+A [`limb`](../twig/limb/limb), like `foo`, is Hoon's equivalent of a variable
205reference. A limb is a twig; given a subject span, `mint`
205reference. A limb is a twig; given a subject span, `mint`
206resolves it to a Nock formula and a product span.
206resolves it to a Nock formula and a product span.