如何实现递归函数以简化带排序元组列表的多项式项?

时间:2019-04-15 03:12:38

标签: list tuples ocaml

我正在尝试实现一个函数,以添加类似于元组排序列表的术语(第一个数字表示多项式的常数,第二个数字表示幂)。我是ocaml新手,真的不知道自己在做什么错或如何正确执行此操作。

我尝试编写它,但是没有用 https://gyazo.com/d37bb66d0e6813537c34225b6d4048d0

let rec simp list = 
    match list with 
    | (a,b)::(c,d)::remainder where b == d -> (a+c,b)::simp(remainder)
    | (a,b)::(c,d)::remainder where b != d -> (a,b)::(c,d)::simp(remainder)
    | _ -> list;;

这应该将所有术语与相同的第二个值组合在一起,并只返回一个元组,并将其第一个值添加到新列表中。即:[(3,2);(4,2)]-> [(7,2)]。

1 个答案:

答案 0 :(得分:0)

我对where关键字不熟悉-有ocaml-where提供了关键字,但它似乎做的与您期望的有所不同。因此,语法是错误的,where是意外的。

您的意思可能是when,而不是where