Enum lambda_calculus::reduction::Order
[−]
[src]
pub enum Order { NOR, CBN, HSP, HNO, APP, CBV, HAP, }
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
impl Debug for Order
[src]
impl PartialEq for Order
[src]
fn eq(&self, __arg_0: &Order) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl Clone for Order
[src]
fn clone(&self) -> Order
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more