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