Programming Language Theory: Difference between revisions

Line 24: Line 24:
===Untyped λ-calculus===
===Untyped λ-calculus===
BNF grammar:
BNF grammar:
<pre>λ-term ::= λ-app | λ-abst | ''var''
<pre>λ-term ::= λ-app | λ-abst | var
λ-app ::= λ-term λ-term
λ-app ::= λ-term λ-term
λ-abst ::= 'λ'''var'''.' λ-term</pre>
λ-abst ::= 'λ'var'.' λ-term</pre>
Two operators (function ''definition'' and ''application'') upon one operand type (λ-expression).
Two operators (function ''definition'' and ''application'') upon one operand type (λ-expression).
* Function definition: <tt>(λ''boundparam''. body)</tt>
* Function definition: <tt>(λ''boundparam''. body)</tt>