CLP (R) - CLP(R)

CLP (R) это декларативный язык программирования. Это означает программирование логики ограничений (Реальный), где реальное относится к действительные числа. Его можно рассматривать и обычно реализуют как надмножество или дополнительный пакет для Пролог реализация.

Пример правила

В совместные линейные уравнения:

выражаются в CLP (R) как:

3*Икс + 4*Y - 2*Z = 8,Икс - 5*Y + Z = 10,2*Икс + 3*Y -Z = 20.

и типичный ответ реализации будет:

Z = 35,75
Y = 8,25
Х = 15,5

да

Пример программы

CLP (R) позволяет определять предикаты с помощью рекурсивных определений. Например, ипотечное отношение может быть определено как отношение основной суммы долга P, количества периодов времени ссуды T, погашения каждого периода R, процентной ставки за период I и окончательного остатка, причитающегося по окончании ссуды B.

мг(п, Т, р, я, B) :- Т = 0, B = р.мг(п, Т, р, я, B) :- Т >= 1, P1 = п*(1+я) - р, мг(P1, Т - 1, р, я, B).

Первое правило выражает, что для ссуды с нулевым периодом остаток задолженности в конце является просто первоначальной основной суммой. Второе правило выражает, что для ссуды по крайней мере на один период времени мы можем рассчитать новую сумму задолженности P1, умножив основную сумму на 1. плюс процентная ставка и вычитая погашение. Оставшаяся часть ссуды рассматривается как еще одна ипотека для новой основной суммы и на один период меньше.

Что ты можешь сделать с этим? Вы можете задать много вопросов. Если я займу 1000 долларов на 10 лет под 10% в год с выплатой 150 в год, сколько я буду должен в конце?

?- мг(1000, 10, 150, 10/100, B).

Система отвечает ответом

B = 203.129.

Какую сумму я могу взять с 10-летней ссудой под 10% с погашением 150 каждый год, если в конце концов ничего не будет?

?- мг(п, 10, 150, 10/100, 0).

Система отвечает ответом

п = 921.685.

Какая связь между основной суммой, погашением и остатком по 10-летнему кредиту под 10% годовых?

?- мг(п, 10, р, 10/100, B).

Система отвечает ответом

п = 0.3855*B + 6.1446 * р.

Это показывает взаимосвязь между переменными, не требуя, чтобы они принимали конкретное значение.

использованная литература

  • Джоксан Джаффар, Спиро Михайлов, Питер Дж. Стаки, Роланд Х. К. Яп: Язык и система CLP (R). ACM Транзакции о языках программирования и системах 14 (3): 339-395 (1992)

внешние ссылки