#prolog #calc #derivative
#пролог #calc #производная
Вопрос:
У меня проблема, мне нужно сжать производный результат следующим образом:
0*x*x 2*(1*x x*1) =====> example: 0 2*(2*x) =====> 0 2*4*x====>8*x
Возможно ли это? Спасибо за вашу помощь.
С уважением, Вольтер
Комментарии:
1. Обычно это называется упрощением.
Ответ №1:
Да, это возможно, просто требуется некоторая работа. Вам нужно будет написать атомарные правила, такие как
rule(0*_, 0).
rule(_*0, 0).
rule(1*X, X).
rule(X*1, X).
и реализуйте предикат фиксированной точки (возможно, цикл, управляемый сбоем), который применяет правила до сходимости.
Комментарии:
1. спасибо за ответ, но как разбить эту «строку» на атомарные формулы?
2. мне нужен цикл для распаковки всех терминов?
3. @flatronflow: вы захотите написать DCG для ваших выражений.