pub fn is_zero() -> Term
Expand description

Applied to a Scott-encoded number it produces a lambda-encoded boolean, indicating whether its argument is equal to zero.

IS_ZERO ≡ λn.n TRUE (λx.FALSE) ≡ λ 1 TRUE (λ FALSE)

Example

use lambda_calculus::data::num::scott::is_zero;
use lambda_calculus::data::boolean::{tru, fls};
use lambda_calculus::*;

assert_eq!(beta(app(is_zero(), 0.into_scott()), NOR, 0), tru());
assert_eq!(beta(app(is_zero(), 1.into_scott()), NOR, 0), fls());