相关疑难解决方法(0)

在 Prolog 中将两个多项式相乘

我正在尝试使用 Prolog 来实现将两个多项式相乘的多项式乘法。下面是SML中给出的代码,但我需要Prolog中的代码。SML 的测试解决方案是 poly_mult([1.0, 5.0, 1.0], [3.0, ~10.0, 15.0]);并将返回 val it = [3.0,5.0,~32.0,65.0,15.0] : real list 我尝试在 Prolog 中编写代码,但我所得到的不正确。有人可以帮忙吗?谢谢!

在SML中

fun poly_add (M,nil) = M
|  poly_add (nil,N) = N
|  poly_add ((m:real)::mr, n::nr) = (m+n)::poly_add(mr,nr);

fun scalar_mult (nil,m) = nil
|  scalar_mult((m:real)::mr,n) = (m*n)::scalar_mult(mr,n);

fun poly_mult (M,nil) = nil
|  poly_mult (M,n::nr) = poly_add (scalar_mult(M,n), 0.0::poly_mult(M,nr));
Run Code Online (Sandbox Code Playgroud)

我在 PROLOG 中有什么

poly_add(Constant,[],Constant) :- !.
poly_add([],Constant2,Constant) :- !.
poly_add([Head1 | Head2], [Tail | Tail2], [HeadSum |TailSum]) :-
    HeadSum is Head + …
Run Code Online (Sandbox Code Playgroud)

prolog

2
推荐指数
1
解决办法
1889
查看次数

标签 统计

prolog ×1