CLP (R) - CLP(R)
CLP (R) je deklarativní programovací jazyk. Znamená logické programování omezení (Real) kde real odkazuje na reálná čísla. Lze jej zvážit a je obecně implementován jako nadmnožina nebo doplněk balíčku pro Prolog implementace.
Příklad pravidla
The simultánní lineární rovnice:
jsou vyjádřeny v CLP (R) jako:
3*X + 4*Y - 2*Z = 8,X - 5*Y + Z = 10,2*X + 3*Y -Z = 20.
a typická odpověď implementace by byla:
Z = 35,75
Y = 8,25
X = 15,5
Ano
Ukázkový program
CLP (R) umožňuje definici predikátů pomocí rekurzivních definic. Například hypoteční vztah lze definovat jako vztahující se k jistině P, počtu časových období úvěru T, splácení každého období R, úrokové sazbě za období I a konečnému zůstatku na konci úvěru B.
mg(P, T, R, Já, B) :- T = 0, B = R.mg(P, T, R, Já, B) :- T >= 1, P1 = P*(1+Já) - R, mg(P1, T - 1, R, Já, B).
První pravidlo vyjadřuje, že u půjčky na období 0 je zůstatek na konci jednoduše původní jistinou. Druhé pravidlo vyjadřuje, že u půjčky na alespoň jedno časové období můžeme vypočítat novou dlužnou částku P1 vynásobením jistiny 1 plus úroková sazba a odečtení splátky. Zbytek půjčky je považován za další hypotéku na novou jistinu a o jedno časové období méně.
Co s tím můžete dělat? Můžete si položit mnoho otázek. Pokud si půjčím 1000 $ na 10 let při 10% ročně se splácením 150 ročně, kolik dlužím na konci?
?- mg(1000, 10, 150, 10/100, B).
Systém odpoví odpovědí
B = 203.129.
Kolik si mohu půjčit s 10letou půjčkou s 10% splácením 150 každý rok, abych na konci nic nedlužil?
?- mg(P, 10, 150, 10/100, 0).
Systém odpoví odpovědí
P = 921.685.
Jaký je vztah mezi jistinou, splátkou a zůstatkem na 10leté půjčce s 10% úrokem?
?- mg(P, 10, R, 10/100, B).
Systém odpoví odpovědí
P = 0.3855*B + 6.1446 * R.
To ukazuje vztah mezi proměnnými, aniž by bylo nutné, aby někdo převzal určitou hodnotu.
Reference
- Joxan Jaffar, Spiro Michaylov, Peter J. Stuckey, Roland H. C. Yap: Jazyk a systém CLP (R). ACM Transaction on Programming Languages and Systems 14 (3): 339-395 (1992)
externí odkazy
![]() | Tento programovací jazyk související článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |