lambda/
math.rs

1
2
3
4lambda!(zero =  {x}f x);
5
6lambda!(one =  {f,x}f x);
7
8lambda!(add1 = {f, (n , f , x) }n f x );
9
10lambda!(two = add1 , one);
11
12lambda!(add = {a , add1 , b} add1 a b , add1);
13
14
15
16
17#[cfg(test)]
18mod tests {
19    use crate::*;
20    #[test]
21    fn it_works() {
22        assert_eq!(lambda!(to_str,zero),"lambda! [{ x } f x] ;");
23        assert_eq!(lambda!(to_str,one) ,"lambda! [{ f, x } f x] ;");
24    }
25}