From 89a4b5a6ffc74831a76429ab4afec8d0da7db7e7 Mon Sep 17 00:00:00 2001 From: Markus Triska Date: Mon, 27 Apr 2020 19:48:31 +0200 Subject: [PATCH 1/2] add more information about Constraint Logic Programming (CLP) --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index f0d0b6ac..202a5b42 100644 --- a/README.md +++ b/README.md @@ -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 From 5f35dffa34387cc48d23f128a0e90bc627cc24b3 Mon Sep 17 00:00:00 2001 From: Markus Triska Date: Mon, 27 Apr 2020 19:53:25 +0200 Subject: [PATCH 2/2] `if_` --> `if_/3` --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 202a5b42..e30bd1b7 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Extend Scryer Prolog to include the following, among other features: - [x] Support for `verify_attributes/3` - [x] Support for `attribute_goals/2` and `project_attributes/2` - [x] `call_residue_vars/2` -- [x] `if_` and related predicates, following the developments of the +- [x] `if_/3` and related predicates, following the developments of the paper "Indexing `dif/2`". - [x] All-solutions predicates (`findall/{3,4}`, `bagof/3`, `setof/3`, `forall/2`). - [x] Clause creation and destruction (`asserta/1`, `assertz/1`,