developers.urbit.org/content/reference/glossary/nock.md
2022-06-27 10:36:52 -05:00

1.0 KiB

+++ title = "Nock"

template = "doc.html" +++

Nock is a purely functional typeless programming language and acts as Urbit's lowest-level language. To be more precise, it is a minimalist Turing complete combinator calculus. Nock can be thought of as the assembly-level language specification for Urbit. Nock is evaluated by the runtime system Vere.

The only basic data type in Nock is the atom, which is a non-negative integer. Computation in Nock occurs through the use of nouns (e.g. binary trees whose leaves are atoms) utilized in three different manners: formulas, subjects, and products. A formula is a noun utilized as a function that takes in a noun, its subject, and returns a noun, its product.

Code written in Hoon is compiled to Nock, though it is unnecessary to learn Nock to write code in Hoon.

Further Reading