Instructors' Guide
Introduction
Terminology
Expressions
Control
Objects
Inheritance
Technology
Summary
Expressions
The expressiveness of DLP is derived to a large extent
from its heritage from Prolog.
The basic syntactic units in Prolog are terms,
which are either constants
(such as characters, integers, strings, or the empty list
),
variables
(which by convention start with a capital or underscore),
or
compound terms
(which may be written as a function symbol with
argument terms or as a list of the form ,
where H stands for the head of the list and T for its
tail).
See slide [dlp-expr].
Expressions -- terms
Prolog
- constants -- a, "a string", [ ]
- variables -- X,Y,Z
- compound -- f(a,X), [ H | T ]
Unification -- bi-directional parameter passing
- f(X,a) = f(b,Y) results in X = b and Y = a
slide: DLP -- expressions
Terms allow for what is called unification,
which is an extended form of pattern matching.
Unification results in binding variables to terms,
in such a way that the two unified terms become
syntactically equal.
As an example, unifying f(X,a) with f(b,Y)
results in binding X to a and Y to b.
Unification is the primary mechanism of parameter
passing in Prolog.
It is essentially bi-directional and satisfies
the one-assignment-only property,
which means that evaluating a goal must result
in a consistent binding, otherwise the goal fails.