我正在用F#编写一些代码,我需要乘以元组(c,d)的元组列表中的每个元素(a,b).
澄清,
(a,b)[(c,d),(e,f),(g,h)...][(a*c,b*d),(a*e,b*f),(a*g,b*h)...][(a+c,b+d),...]我试图用List.map一个元组乘以列表中的每个元素,但是我得到一个错误,它*是类型元组的无效运算符.
这就是我最终用模式匹配递归实现乘法函数的方法:
let rec mtp(t:term,p:poly):poly =
match (t, p) with
| (a,b),[] -> []
| (a, b),(c,d)::ps -> (a*c,b*d)::mtp(t,ps)
Run Code Online (Sandbox Code Playgroud)
其中term是float*int的元组,poly是一个术语列表