Function lambda_calculus::data::num::binary::lsb

source ·
pub fn lsb() -> Term
Expand description

Applied to a binary-encoded number it returns its least significant bit.

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

Example

use lambda_calculus::data::num::binary::{lsb, b0, b1};
use lambda_calculus::*;

assert_eq!(beta(app(lsb(), 1.into_binary()), NOR, 0), b1());
assert_eq!(beta(app(lsb(), 2.into_binary()), NOR, 0), b0());
assert_eq!(beta(app(lsb(), 3.into_binary()), NOR, 0), b1());
assert_eq!(beta(app(lsb(), 4.into_binary()), NOR, 0), b0());