[][src]Module lambda_calculus::term

Re-exports

pub use self::Term::*;
pub use self::Notation::*;

Enums

Notation

The notation used for parsing and displaying purposes.

Term

A lambda term that is either a variable with a De Bruijn index, an abstraction over a term or an applicaction of one term to another.

TermError

An error that can be returned when an inapplicable function is applied to a Term.

Constants

LAMBDA

The character used to display lambda abstractions. The default is the Greek letter 'λ', but it can also be set to a '' (backslash) using features = ["backslash_lambda"].

UD

An undefined term that can be used as a value returned by invalid/inapplicable operations, e.g. obtaining an element of an empty list. Since this implementation uses De Bruijn indices greater than zero, Var(0) will not occur naturally. It is displayed as undefined.

Functions

abs

Wraps a Term in an Abstraction. Consumes its argument.

app

Produces an Application of two given Terms without any reduction, consuming them in the process.