Programming Language Theory: Difference between revisions
No edit summary |
No edit summary |
||
| Line 5: | Line 5: | ||
* Applicative state transition system (<tt>ast</tt>): <tt>ffp</tt> plus mutable state and coarse-grained operations thereupon | * Applicative state transition system (<tt>ast</tt>): <tt>ffp</tt> plus mutable state and coarse-grained operations thereupon | ||
===Untyped λ-calculus=== | ===Untyped λ-calculus=== | ||
Two operators (function ''definition'' and ''application'') upon one operand type (λ-expression). | |||
* Function definition: <tt>(λ''formalparam'' . body)</tt> | |||
* Function application: <tt>function(''actualparam'')</tt> | |||
Common syntactic sugar: | |||
* Left-associative application as implicit parentheses | |||
* Use of definitions (allowing identifiers to stand in as λ-expressions) | |||
* Currying: <tt>(λx, y . x + y)</tt> rather than <tt>(λx . (λy . x + y))</tt> | |||