History of Nock#
Nock is a combinator calculus designed by ~sorreg-namtyv from 2002 onwards and elaborated subsequently by other contributors (including ~rovnys-ricfer and ~fodwyt-ragful for 4K). While it has undergone several revisions, all have in common these design principles:
Pragmatic minimalism: as simple as viable, and no simpler.
Functional purity: no undefined behavior, no side effects except via explicit runtime hints.
Homoiconicity: code and data share the same representation.
Virtualizability: the ability to extend the base language via first-class virtualization.
Namespace extension: the ability to step beyond apparent scope restrictions using referential transparency.
Namespace extension also implies hyper-Turing completeness: a system architected on Nock can build a virtualization function that has the ability to answer, in certain cases, whether or not the computation will halt.
For a detailed history of Nock, see ~lagrev-nocfep, ~sorreg-namtyv (2025), “A Documentary History of the Nock Combinator Calculus”. Specific historical revisions of Nock are mirrored here as documents of historical significance, while commentary is provided at the article.
Nock Versions#
Nock versions count downwards following a theory called “kelvin versioning”, in which the protocol “freezes” over time as a commitment to future stability. While four more revisions are in principle possible, it is unlikely that Nock will ever change again.