** Next:** Examples of A++ -
** Up:** Definition of A++ in
** Previous:** Definition of A++ in
** Contents**
** Start**

####

Commenting the definition:

- 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 A++ -
** Up:** Definition of A++ in
** Previous:** Definition of A++ in
** Contents**
** Start**

Georg P. Loczewski
2004-03-05