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 principles respected here We recommend IntelliJ IDEA

make crates.io PDD status Hits-of-Code Lines of code License

它是一个将 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