17个版本 (5个破坏性更新)
使用旧的Rust 2015
0.6.0 | 2018年1月26日 |
---|---|
0.5.6 | 2018年1月18日 |
0.4.5 | 2017年5月31日 |
0.3.1 | 2017年5月1日 |
0.1.3 | 2017年4月9日 |
#1144 in 编码
25KB
395 行
blc
blc是二进制lambda演算的实现。
二进制lambda演算基础
二进制lambda演算(BLC)是一种基于无类型lambda演算的二进制编码的最小、纯函数式编程语言,使用De Bruijn索引。
BLC中的lambda项具有以下表示形式
term | lambda | BLC |
---|---|---|
抽象 | λM | 00M |
应用 | MN | 01MN |
变量 | i | 1i0 |
由于BLC程序基本上是lambda演算项,因此它们可以应用于其他项。为了适用于二进制(但不是BLC编码)输入,它必须首先进行lambda编码。字节数据作为字节的Church列表进行lambda编码,字节作为lambda编码位的Church列表进行lambda编码。
位0和1作为Church布尔值进行lambda编码
bit | lambda | BLC |
---|---|---|
0 | λλ2 (true) | 0000110 |
1 | λλ1 (false) | 000010 |
示例:代表ASCII/UTF-8编码字母'a'的字节的BLC编码步骤
encoding | representation |
---|---|
十进制 | 96 |
二进制 | 01100001 |
lambda | λ1(λλ2)(λ1(λλ1)(λ1(λλ1)(λ1(λλ2)(λ1(λλ2)(λ1(λλ2)(λ1(λλ2)(λ1(λλ2)(λ1(λλ1)(λλ1)))))))) |
BLC (十六进制) | 16 16 c 2c 10 b0 42 c1 85 83 b 6 16 c 2c 10 41 0 |
文档
状态
该库已可使用,但仍处于开发中。
待办事项
- 更好的文档
- 更多blc示例
依赖关系
~180KB