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 编码

CC0许可证

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