6 个版本 (重大变更)
使用旧的 Rust 2015
0.4.0 | 2016年4月16日 |
---|---|
0.3.0 | 2016年3月21日 |
0.2.1 | 2016年1月17日 |
0.1.0 | 2015年10月25日 |
0.0.0 | 2015年10月18日 |
#256 in 模拟器
用于 urbit
42KB
971 行
Nock 无状态虚拟机的实现
许可证
许可方式为以下之一
-
Apache 许可证2.0版,(LICENSE-APACHE 或 http://apache.ac.cn/licenses/LICENSE-2.0)
-
MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则任何有意提交以包含在本作品中的贡献,根据 Apache-2.0 许可证定义,应以上述双重许可方式,不附加任何额外条款或条件。
lib.rs
:
Nock 虚拟机的实现。
有关 Nock 的更多信息,请参阅 http://urbit.org/docs/theory/whitepaper。
Nock 规范
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
依赖项
~185–255KB