2 个不稳定版本

0.2.0 2022年9月19日
0.1.0 2022年5月6日

#1726 in 命令行工具

自定义许可协议

80KB
1.5K SLoC

logo

EO principles respected here We recommend IntelliJ IDEA

cargo 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 phie::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();
    let dtz = emu.dataize();
    print!("The result is: {}", dtz.0);
}

此代码等同于以下 EO 代码

[] > foo
  42 > x
  x.add x > @

但以更“函数式”的方式

[] > foo
  42 > x
  int-add > @
    x
    x

更多测试在 src/emu.rs 文件中。

在提交更改之前运行和修复 Clippy 检查问题

  1. 安装 Rustup。如果 Rustup 已经安装,请更新以确保拥有最新的 Rustup 和编译器。
$ rustup update
  1. 安装 Clippy。
$ rustup component add clippy
  1. 运行 Clippy。
$ cargo clippy
  1. 自动应用 Clippy 建议(并非所有问题都会自动解决。此外,Clippy 对于某些 lint 的一些错误案例有误报,因此最好也检查自动修复)。
$ cargo clippy --fix

依赖关系

~5–15MB
~170K SLoC