Next: Examples of syntax of
Up: Definition of A++ in
Previous: Definition of A++ in
Contents
New book on A++ and the Lambda Calculus available!
- Like the introduction to the Lambda Calculus the definition of
A++ deals with `lambda expressions' and defines three different types:
`abstractions', `references' and `syntheses'. This corresponds to the
`lambda abstractions', the `variables' and the `applications' in
the Lambda Calculus. The few differences in the A++ - approach
are the following:
- The syntax of A++ is different. It is borrowed from
Scheme and so simple that it can be described in a few words:
This is all there is to the syntax! It can't be simpler.
Even the syntax of the Lambda Calculus is a little bit more complex!
(e.g. sometimes parentheses are required, sometimes they are
optional.)
- Abstractions may be given a name explicitely, matching the
general human understanding of `abstraction' as
`to give something a name'.
- Abstractions may contain more than one lambda expression
in the body to be evaluated.
- Applications may contain more than two lambda abstractions
including several arguments passed to the operator.
- The rules for the conversion of lambda expressions defined
in the Lambda Calculus are valid in A++ as well. Due to `lazy
evaluation' in A++ lambda expressions can be treated the same
way as in the Lambda Calculus.
Next: Examples of syntax of
Up: Definition of A++ in
Previous: Definition of A++ in
Contents
Georg Loczewski
2003-08-07