Skip to main content

Crate easy_lambda_calculus

Crate easy_lambda_calculus 

Source
Expand description

Simple and easy to write lambda calculus

§Example:

use easy_lambda_calculus::*;

//code to evaluate and(true, true)
fn main() {
  let t = lambda!("%x|y.x"); //true
  let f = lambda!("%x|y.y"); //false
  let a = lambda!("%x|y.(x y) &{}", f); //and
  let res = lambda!("({} &{}) &{}", a, t.clone(), t); //and(true, true)
  println!("{}", res.evaluate());
}
//outputs (%x|y.x) which is equivalent to true

Macros§

lambda
Makes a new lambda from a string

Enums§

Lambda
Lambda data type