3 个版本
0.0.3 | 2022年2月28日 |
---|---|
0.0.2 | 2022年2月23日 |
0.0.1 | 2022年2月19日 |
在 #fibonacci-number 中排名第 9
61KB
1.5K SLoC
它是一个将 EO 编译成二进制的实验性编译器。
要构建它,请安装 Rust 然后继续
$ cargo build --release
如果一切顺利,可执行的二进制文件将在 target/release/fibonacci
$ target/release/fibonacci 7 40
这将计算第7个斐波那契数40次。不要尝试用更大的数字玩耍,这个二进制代码非常慢。这只是一个实验。
要编译自己的程序而不是这个原始的递归斐波那契计算器,您必须将 EO 代码转换为 𝜑-演算 项,然后将它们传递给 Emu
结构,如下所示
use eoc::emu::Emu;
pub fn main() {
let emu: Emu = "
ν0 ↦ ⟦ φ ↦ ν3 ⟧
ν1 ↦ ⟦ Δ ↦ 0x002A ⟧
ν2 ↦ ⟦ λ ↦ int-add, ρ ↦ ξ.𝛼0, 𝛼0 ↦ ξ.𝛼1 ⟧
ν3 ↦ ⟦ φ ↦ ν2(ξ), 𝛼0 ↦ ν1, 𝛼1 ↦ ν1 ⟧
ν5 ↦ ⟦ φ ↦ ν3(ξ) ⟧
".parse().unwrap();
print!("The result is: {}", emu.cycle());
}
此代码等同于以下 EO 代码
[] > foo
42 > x
x.add x > @
但以一种更“函数式”的方式
[] > foo
42 > x
int-add > @
x
x
更多测试在 src/emu.rs
文件中。
依赖关系
~5.5–7MB
~127K SLoC