2015-05-10 69 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 

(作爲一個獨立的評論,你給的代碼不編譯)