Sök…


CLP (FD)

CLP (FD) begränsningar ( Finite Domains ) implementerar aritmetik över heltal . De finns tillgängliga i alla allvarliga Prolog-implementationer.

Det finns två stora fall av CLP (FD):

  • Deklarativ heltal aritmetik
  • Lösa kombinatoriska problem som planering, schemaläggning och tilldelningsuppgifter.

Exempel:

?- X #= 1+2.
X = 3.

?- 3 #= Y+2.
Y = 1.

Observera att om is/2 skulle användas i den andra frågan, skulle ett inställningsfel uppstå:

?- 3 is Y+2.
ERROR: is/2: Arguments are not sufficiently instantiated

CLP (Q)

CLP (Q) implementerar resonemang över rationella antal.

Exempel:

?- { 5/6 = X/2 + 1/3 }.
X = 1.

CLP (H)

Prolog själv kan betraktas som CLP (H) : Constraint Logic Programming over Herbrand-termer . Med detta perspektiv lägger ett Prolog-program begränsningar över villkor . Till exempel:

?- X = f(Y), Y = a.
X = f(a),
Y = a.


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow