====== CLP(FD) ====== - V SWI-Prolog je potrebno naložiti knjižnico z ''use_module(library(clpfd))'' * v CodeQ je knjižnica že naložena - Za CLP(FD) omejitve uporabljamo posebne operatorje * ''X #< Y'', ''X #> Y'', ''X #=< Y'', ''X #>= Y'', ''X #= Y'', ''X #\= Y'' * ''X in -5..5'' * ''X in 2..4 \/ 6..8'' * ''[X, Y, Z] ins -5..5'' - Predikat ''all_different([X, Y, Z])'' postavi omejitev, da so ''X'', ''Y'' in ''Z'' paroma različni - Spremenljivke z omejitvami lahko instanciramo * ''indomain(X)'' * ''labeling([], [X, Y, Z])'' * prazen seznam kot prvi argument uporabi privzete nastavitve - Naloge * ''puzzle_beth/1'' * Beth pravi: „Čez dve leti bom stara dvakrat toliko, kot sem bila pred petimi leti.“ Koliko je stara? * ''puzzle_abc/3'' * ''A'' je dve leti starejši od ''B''-ja, ki je dvakrat starejši od ''C''-ja. Koliko so stari ''A'', ''B'' in ''C'', če je seštevek vseh starosti 27? * ''puzzle_momson/2'' * Vsota starosti matere in njenega sina je 66. Starost matere v letih je ''xy'', starost sina pa ''yx''. Koliko sta stara? * ''puzzle_ratio/2'' * Razmerje starosti ''A''-ja in ''B''-ja je 5:4. Čez tri leta bo razmerje 11:9. Koliko sta stara? * ''magic/1'' * generira magične kvadrate velikosti 3×3 * ''gcd/3'' * poišče največji skupni delitelj dveh števil * ''tobase/3'' * pretvarja med različnimi številskimi sistemi