两个多项式的Ocaml积

两个多项式的Ocaml积,ocaml,polynomial-math,Ocaml,Polynomial Math,如何计算两个多项式的乘积 例如: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'.coeffic

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

例如: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);;
这就是我被卡住的地方。我想我也可以用同一个函数来表示指数,但问题是写一个带一个参数的多项式函数,这意味着两个多项式将在同一个变量中


有人能帮我一下吗?

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

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

下面是一个函数,其中一个参数(一对)乘以两个整数:

# let multiply (a, b) = a * b;;
val multiply : int * int -> int = <fun>
# multiply (8, 7);;
- : int = 56
让我们乘(a,b)=a*b;; val乘法:int*int->int= #乘(8,7);; -:int=56 (作为单独的注释,您给出的代码不会编译。)