Function lambda_calculus::list::cons [] [src]

pub fn cons() -> Term

Equivalent to pair(); applied to two terms it returns them contained in a Church-encoded list.

CONS := PAIR

Example

use lambda_calculus::term::Term;
use lambda_calculus::arithmetic::{zero, one};
use lambda_calculus::list::{nil, cons};
use lambda_calculus::reduction::beta_full;

let list_110_consed = beta_full(
   cons()
   .app(one())
   .app(
       cons()
       .app(one())
       .app(
           cons()
           .app(zero())
           .app(nil())
          )
     )
);
let list_110_from_vec = Term::from(vec![one(), one(), zero()]);

assert_eq!(list_110_consed, list_110_from_vec);