Function lamcal::inspect::or [−][src]
pub fn or<LHS, RHS>(lhs: LHS, rhs: RHS) -> Or<LHS, RHS>
Combines the two given inspections into an Or
combinator inspection.
An inspection is any implementation of the Inspect
trait.
Examples
use lamcal::inspect::{or, Collect, Limit}; use lamcal::{app, lam, var, Enumerate, NormalOrder}; let mut term = app( lam("x", app(lam("y", app(var("x"), var("y"))), var("z"))), var("a"), ); let mut inspection = or(Limit::new(42), Collect::new()); term.reduce_inspected::<NormalOrder<Enumerate>, _>(&mut inspection); assert_eq!(inspection.left().count(), 2); assert_eq!( inspection.right().terms(), &[ app( lam("x", app(lam("y", app(var("x"), var("y"))), var("z"))), var("a") ), app(lam("x", app(var("x"), var("z"))), var("a")), ] ); assert_eq!(term, app(var("a"), var("z")));