Struct lamcal::HybridApplicativeOrder [−][src]
pub struct HybridApplicativeOrder<A> { /* fields omitted */ }
Hybrid-Applicative-Order β-reduction to normal form.
- A hybrid of call-by-value and applicative-order reduction.
- Reduces to normal form, but reduces under lambda abstractions only in argument positions.
- Normalizes more terms than applicative-order reduction, while using fewer reduction steps than normal order reduction.
The hybrid applicative order strategy relates to call-by-value in the same way that the normal order strategy relates to call-by-name.
This strategy is a hybrid as it uses call-by-value for the reduction of the expression e1 in function position in applications (e1 e2).
Trait Implementations
impl<A: Default> Default for HybridApplicativeOrder<A>
[src]
impl<A: Default> Default for HybridApplicativeOrder<A>
fn default() -> HybridApplicativeOrder<A>
[src]
fn default() -> HybridApplicativeOrder<A>
Returns the "default value" for a type. Read more
impl<A: Debug> Debug for HybridApplicativeOrder<A>
[src]
impl<A: Debug> Debug for HybridApplicativeOrder<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 HybridApplicativeOrder<A>
[src]
impl<A: Clone> Clone for HybridApplicativeOrder<A>
fn clone(&self) -> HybridApplicativeOrder<A>
[src]
fn clone(&self) -> HybridApplicativeOrder<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)
Performs copy-assignment from source
. Read more
impl<A: Copy> Copy for HybridApplicativeOrder<A>
[src]
impl<A: Copy> Copy for HybridApplicativeOrder<A>
impl<A: PartialEq> PartialEq for HybridApplicativeOrder<A>
[src]
impl<A: PartialEq> PartialEq for HybridApplicativeOrder<A>
fn eq(&self, other: &HybridApplicativeOrder<A>) -> bool
[src]
fn eq(&self, other: &HybridApplicativeOrder<A>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &HybridApplicativeOrder<A>) -> bool
[src]
fn ne(&self, other: &HybridApplicativeOrder<A>) -> bool
This method tests for !=
.
impl<A> BetaReduce for HybridApplicativeOrder<A> where
A: AlphaRename,
[src]
impl<A> BetaReduce for HybridApplicativeOrder<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 HybridApplicativeOrder<A> where
A: Send,
impl<A> Send for HybridApplicativeOrder<A> where
A: Send,
impl<A> Sync for HybridApplicativeOrder<A> where
A: Sync,
impl<A> Sync for HybridApplicativeOrder<A> where
A: Sync,