如何计算两个多项式的乘积?
例如:x ^ 3 + 3x ^ 2 + 0.2x和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);;
这是我被卡住的地方。我想我也可以使用相同的指数函数,但问题是要求用一个参数写一个多项式函数,这意味着两个多项式将在同一个变量中
有人可以帮助我吗
答案 0 :(得分:0)
你似乎在说你被要求编写一个函数来乘以两个多项式,但该函数应该只有一个参数。事实上,这并没有多大意义。
你总是可以使用一个元组将任意数量的值捆绑到一个值中,但没有理由这样做(我可以看到),而且它不是OCaml的惯用语。
这是一个函数,其中一个参数(一对)乘以两个整数:
# let multiply (a, b) = a * b;;
val multiply : int * int -> int = <fun>
# multiply (8, 7);;
- : int = 56
(作为单独的注释,您提供的代码不会编译。)