1 个不稳定版本

0.1.0 2023年1月23日

#850编程语言

MIT 许可证

51KB
727

Lamb

lamb 是在现代安全Rust中实现的纯无类型λ演算的实现。

安装

  • Cargo.toml 中将 lamb 添加为依赖项

    [dependencies]
    lamb = "0.1.0"
    

    Cargo 特性 replprelude 也可以启用,以与REPL和预定义项进行接口交互

    [dependencies]
    lamb = { version = "0.1.0", features = ["repl", "prelude"] }
    
  • 二进制文件

    通过Cargo安装 lamb

    cargo install lamb
    

特性

  • 默认

    • 程序化构建项
    • 使用不同的归约策略进行β归约
    • 实现自定义β归约策略

    启用 prelude

    • 使用预定义项

    启用 repl

    • 从字符串解析项
    • 程序化构建REPL并执行命令
  • 二进制文件

    • 使用任何预定义的β归约策略进行β归约
      λ> (λx. x) (w z)
      Info: Reduced 1 times
      w z
      λ>
      
    • 将项绑定到名称以自动替换未来的自由变量
      λ> id = λx. x; const = λx y. y;
      Info: Binding id added
      Info: Binding const added
      λ>
      
    • 显示或更改β归约限制
      λ> :limit 1024
      Info: Reduction limit set to 1024
      λ> :limit
      Info: Current reduction limit is 1024
      λ>
      
    • 优雅地退出
      λ> :exit
      

依赖项

~0–540KB