pub fn is_err() -> Term
Expand description

Applied to a lambda-encoded Result it produces a lambda-encoded boolean indicating whether it is Result::Err.

IS_ERR ≡ λa.a (λx.FALSE) (λx.TRUE) ≡ λ 1 (λ FALSE) (λ TRUE)

Example

use lambda_calculus::data::result::is_err;
use lambda_calculus::*;

let ok_one: Result<usize, usize> = Ok(1);
let err_two: Result<usize, usize> = Err(2);

assert_eq!(beta(app(is_err(), ok_one.into_church()), NOR, 0), false.into());
assert_eq!(beta(app(is_err(), err_two.into_church()), NOR, 0), true.into());