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 and HAP orders reduce expressions to their normal form
  • the APP order will fail to fully reduce expressions containing terms without a normal form, e.g. the Y 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

normal - leftmost outermost; the most popular reduction strategy

call-by-name - leftmost outermost, no reductions inside abstractions

head spine - leftmost outermost, abstractions reduced only in head position

hybrid normal - a mix between HSP (head spine) and NOR (normal) strategies

applicative - leftmost innermost; the most eager strategy; unfit for recursion combinators

call-by-value - leftmost innermost, no reductions inside abstractions

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]

[src]

Formats the value using the given formatter.

impl PartialEq for Order
[src]

[src]

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

1.0.0
[src]

This method tests for !=.

impl Clone for Order
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl Copy for Order
[src]

impl Display for Order
[src]

[src]

Formats the value using the given formatter. Read more