CLP(R)
CLP(R) to deklaratywny język programowania . Oznacza programowanie w logice z ograniczeniami (rzeczywiste), gdzie liczba rzeczywista odnosi się do liczb rzeczywistych . Można go rozważyć i jest ogólnie implementowany jako pakiet nadzbioru lub dodatek do Prologu .
Przykładowa reguła
Jednoczesne równania liniowe :
są wyrażone w CLP(R) jako:
3 * X + 4 * Y - 2 * Z = 8 , X - 5 * Y + Z = 10 , 2 * X + 3 * Y - Z = 20.
a typowa odpowiedź implementacji byłaby następująca:
Z = 35,75 Y = 8,25 X = 15,5 Tak
Przykładowy program
CLP(R) umożliwia definiowanie predykatów przy użyciu definicji rekurencyjnych. Na przykład stosunek hipoteczny można zdefiniować jako odnoszący się do kwoty głównej P, liczby okresów pożyczki T, spłaty w każdym okresie R, stopy procentowej w okresie I i salda końcowego należnego na koniec pożyczki B.
0
mg ( P , T , R , ja , b ) : - T = , b = R . mg ( P , T , R , ja , b ) : - T >= 1 , P1 = P * ( 1 + ja ) - R , mg ( P1 , T - 1 , R , ja , b ).
Pierwsza reguła mówi, że w przypadku pożyczki na okres 0 saldo należne na koniec jest po prostu pierwotną kwotą główną. Druga reguła mówi, że dla pożyczki na co najmniej jeden okres możemy obliczyć nową kwotę zadłużenia P1, mnożąc kapitał przez 1 plus stopę procentową i odejmując spłatę. Pozostała część pożyczki jest traktowana jako kolejna hipoteka dla nowego kapitału i o jeden okres mniej.
Co możesz z tym zrobić? Możesz zadać wiele pytań. Jeśli pożyczę 1000 $ na 10 lat na 10% rocznie, spłacając 150 rocznie, ile będę winien na koniec?
a - mg ( 1000 , 10 , 150 , 10/100 , B ) .
System odpowiada odpowiedzią
B = 203,129 .
Ile mogę pożyczyć z 10-letnią pożyczką na 10%, spłacając 150 rocznie, aby na koniec nic nie spłacać?
a - mg ( P , 10 , 150 , 10/100 , ) . 0
System odpowiada odpowiedzią
P = 921,685 .
Jaki jest związek między kwotą główną, spłatą i saldem pożyczki na 10 lat z oprocentowaniem 10%?
a - mg ( P , 10 , R , 10/100 , B ) .
System odpowiada odpowiedzią
P = 0,3855 * B + 6,1446 * R .
To pokazuje związek między zmiennymi, bez wymagania, aby którakolwiek z nich przyjmowała określoną wartość.
- Joxan Jaffar, Spiro Michaylov, Peter J. Stuckey, Roland HC Yap: Język i system CLP(R) . Transakcje ACM dotyczące języków i systemów programowania 14 (3): 339-395 (1992)
Linki zewnętrzne