Some notes about syntax:
  • The LaTeX syntax is used for lambda. For example:
    \lambda f x.x
    will give you:
    λ f x.x
  • Applications are assumed to be left-associative in the case that no brackets are supplied. For example:
    x y z
    will be interpreted as:
    (x y) z
  • Multiple functional abstractions can be abbreviated as one. For example:
    λ f .λ x. f x
    is equivalent to:
    λ f x. f x
    This and the note above are same notational conventions found at: http://en.wikipedia.org/wiki/Lambda_calculus
  • Variable names need not be single character. For this reason multiple variables must be delimited by whitespace. For example,
    λ f x. f x
    is a function of 2 variables.
    λ fx. f x
    is a function of 1 variable.
  • Meta-characters are '(', ')', and '.'. Also the full string '\lambda'. Everything else is permitted for variable names and definitions. Definitions do not necessarily need to be named in upper-case.
The following are a list of definitions (abbreviations) which will be substituted in at run time. These will be only be substituted when no beta-reductions are possible.
new Definition Name:
new Definition:
Enter an expression: