2015-05-10 40 views
0

如何计算两个多项式的乘积?Ocaml两个多项式的乘积

例如:X^3 + 3×^ 2 + 0.2×和2x^4 + 3

首先我由类型

Type term = {coefficient:int; name:string; exponent:int};; 
Type polynomials = term list;; 

然后我做了一个函数计算系数

let product l l' = 
    List.concat (List.map (fun e -> List.map (fun e' -> (e*e')) l'.coefficient)    
l.coefficient);; 

这是我卡住的地方。我想我可以使用指数相同的功能,很好,但问题是问写一个多项式函数与一个PARAM,这意味着两个多项式将在同一个变量

有人能帮助我在这里

回答

0

你似乎在说要求你写一个函数来乘以两个多项式,但函数应该只有一个参数。这确实没有多大意义。

您可以随时使用元组将任意数量的值绑定到一个值中,但没有理由这样做(我可以看到),而且这对OCaml来说不是惯用的。

这里有一个参数(一对)乘以两个整数的函数:

# let multiply (a, b) = a * b;; 
val multiply : int * int -> int = <fun> 
# multiply (8, 7);; 
- : int = 56 

(作为一个独立的评论,你给的代码不编译)