-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmainpage.dox
46 lines (46 loc) · 1.78 KB
/
mainpage.dox
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/**
* @mainpage pl_search_cpp Documentation
*
* @section intro Introduction
*
* pl_search_cpp is a C++ library that approximates Prolog predicates using a continuation-passing style.
* It provides a framework for defining and executing Prolog-like predicates, including support for
* backtracking, choice points, and unification. Its intended use is to support
* backtrack search in a wide range of problem domains, not as a pathway to a Prolog
* implementation.
*
* @section features Features
*
* - Prolog-like predicates
* - Continuation-passing style execution
* - Backtracking and choice points
* - Unification of terms
* - Support for variables, integers, floats, atoms, and C-like lists as well as user defined term types.
*
* @section usage Usage
*
* To use the pl_search_cpp library, include the necessary headers in your project and link against the library.
*
* @code
* #include "pl_search/engine.hpp"
* #include "pl_search/pvar.hpp"
* #include "pl_search/pint.hpp"
* #include "pl_search/pfloat.hpp"
* #include "pl_search/patom.hpp"
* #include "pl_search/clist.hpp"
* #include "pl_search/pred.hpp"
* #include "pl_search/choice_iterator.hpp"
* #include "pl_search/typedefs.hpp"
* @endcode
*
* @section examples Examples
* The examples directory contains the following examples of using the library.
* - A solver for the SEND+MORE=MONEY puzzle (<code>send_more_money.cpp</code>).
* - An example of a user defined Term type (<code>prolog_list.hpp</code>).
* - An implementation of the Prolog append predicate using the above type (<code>append_pred.hpp</code>).
* - A main program ( <code>prolog_list.cpp</code>) that exercises the definitions above.
*
* @section license License
*
* This project is licensed under the MIT License - see the LICENSE file for details.
*/