Prolog表达式简化

时间:2017-04-28 19:57:36

标签: prolog

我是Prolog的新手,不得不为微积分课程编写一个符号化的差异化工具。我让它以这样的方式工作:

?- diff(ln(x^3),D).
D = 1*3*x^(3-1) / x^3 ;

?- diff(x*x*x*x,D).
D = x*x*x*1+x*(x*x*1+x*(x*1+x*1)).

但是,我希望将其作为:

D = 3x^(-2) / x^3;

D = 4x^(3);

是否有简单的方法来简化这些数学表达式。谢谢!

1 个答案:

答案 0 :(得分:0)

您可以为此使用goal_expansion / 2(在编译时):

goal_expansion(+, -). 

关注Prolog - simplify derivative

示例:

goal_expansion(X,Y):-simplify(X,Y).