相关疑难解决方法(0)

用F#中的元组乘以元组列表

我正在用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是一个术语列表

f# tuples list

3
推荐指数
1
解决办法
441
查看次数

标签 统计

f# ×1

list ×1

tuples ×1