- ... solver.1.1
- Although some CLP systems allow the user to
  define their own constraint domains and solvers.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
 
- ... created1.2
- As
  we will see later, these choice points are created every time there
  is an alternative in the program, and these alternatives appear
  almost inevitably even if the program do not explicitly create
  them.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
 
- ... lengths1.3
- We will use nodes to represent tasks; the
  problem is the same where nodes or edges are used to that
  end.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
 
- ... (re)started2.1
- There are also
  special all-solutions predicates which encapsulate a search
  in a single objective and return all possible solutions for a given
  query.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
 
- ... them2.2
- In fact, the kind of
  fatal errors which are raised in some languages because of the
  dereferencing of uninitialized pointers, or because or arithmetical
  operations with numbers holding senseless values, cannot appear in
  CLP systems (and, if they do, it is the system's, not the
  programmer's, fault) and, at most, a runtime error is returned,
  which usually can be caught and recovered from.  This results in an
  easier construction and management of complex data structures, as we
  will see.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
 
- ... attention3.1
- This
  can be assumed at this moment.  Later we will see that a better
  knowledge of how the system actually works is needed for writing
  certain programs.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
 
- ...
amount3.2
- Mathematically speaking, this is not a good idea: the
  error of the approximation in a series is, in general, an expression
  which is to be calculated separately, and usually working out this
  expression is not as straightforward as testing the value of an
  element of that series.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
 
- ...Y;3.3
- We are obviously abusing the
  notation for variables: each variable is different in different
  iterations.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
 
- ... always4.1
- Not always: most Prolog
  and some CLP systems have means to declare predicates to be
  concurrent: calls to them are delayed until some conditions are met,
  and they are resumed when these conditions hold.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
 
- ...
problem.7.1
- All the times reported in this section will refer to
  the finding of the first solution, not to traversal of the whole
  search tree.  Also, all programs were run in a SUN Sparc 10 with
  SunOS 4.1.3 and Prolog IV v1.0.1. 
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.