Enum lambda_calculus::reduction::Order
source · pub enum Order {
NOR,
CBN,
HSP,
HNO,
APP,
CBV,
HAP,
}
Expand description
The evaluation order of β-reductions.
- the
NOR
,HNO
,APP
andHAP
orders reduce expressions to their normal form - the
APP
order will fail to fully reduce expressions containing terms without a normal form, e.g. theY
combinator (they will expand forever) - the
CBN
order reduces to weak head normal form - the
CBV
order reduces to weak normal form - the
HSP
order reduces to head normal form
Variants§
NOR
normal - leftmost outermost; the most popular reduction strategy
CBN
call-by-name - leftmost outermost, no reductions inside abstractions
HSP
head spine - leftmost outermost, abstractions reduced only in head position
HNO
hybrid normal - a mix between HSP
(head spine) and NOR
(normal) strategies
APP
applicative - leftmost innermost; the most eager strategy; unfit for recursion combinators
CBV
call-by-value - leftmost innermost, no reductions inside abstractions
HAP
hybrid applicative - a mix between CBV
(call-by-value) and APP
(applicative) strategies;
usually the fastest-reducing normalizing strategy
Trait Implementations§
source§impl PartialEq<Order> for Order
impl PartialEq<Order> for Order
impl Copy for Order
impl Eq for Order
impl StructuralEq for Order
impl StructuralPartialEq for Order
Auto Trait Implementations§
impl RefUnwindSafe for Order
impl Send for Order
impl Sync for Order
impl Unpin for Order
impl UnwindSafe for Order
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more