CLP(R)

CLP(R)

CLP(R)선언형 프로그래밍 언어입니다.는 구속 로직 프로그래밍(Real)의 약자로, 여기서 real은 실수를 나타냅니다. 패키지는 일반적으로 Prolog 구현을 위한 슈퍼셋 또는 애드온 패키지로 구현될 수 있습니다.

규칙 예시

연립 선형 방정식:

CLP(R)에서는 다음과 같이 표시됩니다.

3*X + 4*Y - 2*Z = 8, X - 5*Y + Z = 10, 2*X + 3*Y -Z = 20. 

일반적인 구현의 반응은 다음과 같습니다.

Z = 35.75
Y = 8.25
X = 15.5

Yes

프로그램 예시

CLP(R)를 사용하면 재귀 정의를 사용하여 술어를 정의할 수 있습니다.예를 들어 담보대출 관계는 원금 P, 대출 기간 T, 각 기간 R 상환, 기간 I 및 대출 B의 말기에 대한 최종 잔액과 관련된 것으로 정의할 수 있다.

관리(P, T, R, I, B) :- T = 0, B = R. 관리(P, T, R, I, B) :- T >= 1, P1 = P*(1+I) - R, 관리(P1, T - 1, R, I, B). 

첫 번째 규칙은 0기간 대출의 경우, 마지막에 지불해야 하는 잔액은 단순히 원래 원금이라고 표현한다.두 번째 규칙은 최소 한 기간의 대출에 대해 원금에 이자율을 곱하고 상환을 차감함으로써 새로운 부채 금액 P1을 계산할 수 있다는 것을 나타낸다.대출의 나머지 부분은 새로운 원금에 대한 또 다른 담보대출로 처리되며 기간은 한 번 줄어든다.

그걸로 뭘 할 수 있죠?당신은 많은 질문을 할 수 있다.1000달러를 연 10%로 10년간 빌려서 연간 150달러를 상환하면 최종적으로 얼마가 됩니까?

?- 관리(1000, 10, 150, 10/100, B). 

시스템이 응답합니다.

B = 203.129. 

10년 대출의 10%를 빌려서 매년 150을 갚으면 마지막에 빚을 지지 않을 수 있는 금액은 얼마입니까?

?- 관리(P, 10, 150, 10/100, 0). 

시스템이 응답합니다.

P = 921.685. 

10년 만기 대출의 원리금, 상환 및 잔액은 어떤 관계가 있습니까?

?- 관리(P, 10, R, 10/100, B). 

시스템이 응답합니다.

P = 0.3855*B + 6.1446 * R. 

특정 값을 취할 필요 없이 변수 간의 관계를 보여줍니다.

레퍼런스

외부 링크