Struct lamcal::HybridNormalOrder [−][src]
pub struct HybridNormalOrder<A> { /* fields omitted */ }
Hybrid-Normal-Order β-reduction to normal form.
- A hybrid of head-spine and normal-order reduction.
- Reduces the leftmost outermost redex first.
- In an application (e1 e2) the function term e1 is reduced using the
head-spine strategy (
HeadSpine
). - Any redex that is contracted is the leftmost one not contained in any other redex.
- Reductions are performed also under lambda abstractions.
This strategy is a hybrid as it uses head-spine for the reduction of the expression e1 in function position in applications (e1 e2).
Trait Implementations
impl<A: Default> Default for HybridNormalOrder<A>
[src]
impl<A: Default> Default for HybridNormalOrder<A>
fn default() -> HybridNormalOrder<A>
[src]
fn default() -> HybridNormalOrder<A>
Returns the "default value" for a type. Read more
impl<A: Debug> Debug for HybridNormalOrder<A>
[src]
impl<A: Debug> Debug for HybridNormalOrder<A>
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl<A: Clone> Clone for HybridNormalOrder<A>
[src]
impl<A: Clone> Clone for HybridNormalOrder<A>
fn clone(&self) -> HybridNormalOrder<A>
[src]
fn clone(&self) -> HybridNormalOrder<A>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0
[src]Performs copy-assignment from source
. Read more
impl<A: Copy> Copy for HybridNormalOrder<A>
[src]
impl<A: Copy> Copy for HybridNormalOrder<A>
impl<A: PartialEq> PartialEq for HybridNormalOrder<A>
[src]
impl<A: PartialEq> PartialEq for HybridNormalOrder<A>
fn eq(&self, other: &HybridNormalOrder<A>) -> bool
[src]
fn eq(&self, other: &HybridNormalOrder<A>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &HybridNormalOrder<A>) -> bool
[src]
fn ne(&self, other: &HybridNormalOrder<A>) -> bool
This method tests for !=
.
impl<A> BetaReduce for HybridNormalOrder<A> where
A: AlphaRename,
[src]
impl<A> BetaReduce for HybridNormalOrder<A> where
A: AlphaRename,
fn reduce_inspected(
expr: Term,
inspect: &mut impl Inspect
) -> Term
[src]
fn reduce_inspected(
expr: Term,
inspect: &mut impl Inspect
) -> Term
Performs β-reduction allowing to inspect the current term before each contraction. Read more
fn reduce(expr: Term) -> Term
[src]
fn reduce(expr: Term) -> Term
Performs β-reduction on the given Term
and returns the result. Read more
fn reduce_once(expr: Term) -> Term
[src]
fn reduce_once(expr: Term) -> Term
Performs one step of β-reduction on the given Term
and returns the result. Read more
Auto Trait Implementations
impl<A> Send for HybridNormalOrder<A> where
A: Send,
impl<A> Send for HybridNormalOrder<A> where
A: Send,
impl<A> Sync for HybridNormalOrder<A> where
A: Sync,
impl<A> Sync for HybridNormalOrder<A> where
A: Sync,