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]

Returns the "default value" for a type. Read more

impl<A: Debug> Debug for HybridApplicativeOrder<A>
[src]

Formats the value using the given formatter. Read more

impl<A: Clone> Clone for HybridApplicativeOrder<A>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<A: Copy> Copy for HybridApplicativeOrder<A>
[src]

impl<A: PartialEq> PartialEq for HybridApplicativeOrder<A>
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<A> BetaReduce for HybridApplicativeOrder<A> where
    A: AlphaRename
[src]

Performs β-reduction allowing to inspect the current term before each contraction. Read more

Performs β-reduction on the given Term and returns the result. Read more

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> Sync for HybridApplicativeOrder<A> where
    A: Sync