add more information about Constraint Logic Programming (CLP)

This commit is contained in:
Markus Triska
2020-04-27 19:48:31 +02:00
parent ff41d6aef9
commit 89a4b5a6ff

View File

@@ -273,6 +273,24 @@ described in [*Tabling as a Library with Delimited
Control*](https://biblio.ugent.be/publication/6880648/file/6885145.pdf)
by Desouter et. al.
### Constraint Logic Programming (CLP)
Scryer Prolog provides excellent support for Constraint Logic
Programming (CLP), which is the amalgamation of
Logic Programming (LP) and Constraints.
In addition to built-in support for [`dif/2`](src/prolog/lib/dif.pl),
[`freeze/2`](src/prolog/lib/freeze.pl),
[CLP()](src/prolog/lib/clpz.pl) and [CLP(B)](src/prolog/lib/clpb.pl),
Scryer provides a convenient way to implement new user-defined
constraints: *Attributed variables* are available via
[`library(atts)`](src/prolog/lib/atts.pl) as in SICStus Prolog,
which is one of the most sophisticated and fastest constraint systems
in existence.
These features make Scryer Prolog an ideal platform for teaching,
learning and developing portable CLP applications.
### Modules
Scryer has a simple predicate-based module system. It provides a