| << Prev | - Up - |
This section contains procedures dedicated to feature constraints.
^
{Record.'^'R+LIX}
tells the constraint store that R is a record having field X at feature LI.
Is supported by the infix operator ^, that is
{Record.'^'RLIX}
can also be written as
R^LI=X
IsRecordC
{IsRecordC*X?B}
tests whether X has kind record.
TellRecord
{TellRecord+L?R}
tells the constraint store that R is a record with label L.
WidthC
{WidthC*R?D}
posts a propagator for the constraint that D is the width of R. Also tells the constraint store that D is a finite domain integer.
reflectArity
{Record.reflectArity*R?LIs}
returns a list LIs containing the currently known features of R.
monitorArity
{Record.monitorArity*R?P?LIs}
returns a nullary procedure P and a stream LIs containing the currently known features of R.
Features appear in the stream as soon as they become known to the constraint store. Application of P closes the stream and deletes the propagator. The stream is automatically closed once the constraint store determines R.
| << Prev | - Up - |