Expand description
Implementation of the Nock virtual machine.
See http://urbit.org/docs/theory/whitepaper for more information on Nock.
The Nock spec:
A noun is an atom or a cell.
An atom is a natural number.
A cell is an ordered pair of nouns.
nock(a) *a
[a b c] [a [b c]]
?[a b] 0
?a 1
+[a b] +[a b]
+a 1 + a
=[a a] 0
=[a b] 1
=a =a
/[1 a] a
/[2 a b] a
/[3 a b] b
/[(a + a) b] /[2 /[a b]]
/[(a + a + 1) b] /[3 /[a b]]
/a /a
*[a [b c] d] [*[a b c] *[a d]]
*[a 0 b] /[b a]
*[a 1 b] b
*[a 2 b c] *[*[a b] *[a c]]
*[a 3 b] ?*[a b]
*[a 4 b] +*[a b]
*[a 5 b] =*[a b]
*[a 6 b c d] *[a 2 [0 1] 2 [1 c d] [1 0] 2 [1 2 3] [1 0] 4 4 b]
*[a 7 b c] *[a 2 b 1 c]
*[a 8 b c] *[a 7 [[7 [0 1] b] 0 1] c]
*[a 9 b c] *[a 7 c 2 [0 1] 0 b]
*[a 10 [b c] d] *[a 8 c 7 [0 3] d]
*[a 10 b c] *[a c]
*a *a
Structs§
- A Nock noun, the basic unit of representation.
Enums§
- A wrapper for referencing Noun-like patterns.
Traits§
- Types that can be interpreted as arbitrary-length little-endian base-256 integers.
- Types that can be constructed from base-256 integers.
- A trait for types that can be instantiated from a Nock noun.
- Interface for a virtual machine for Nock code.
- Trait for types that can convert themselves to a noun.
Functions§
- Evaluate nock
/[axis subject]
- Return the bit position of the most significant bit.