【发布时间】:2018-04-07 07:29:52
【问题描述】:
我想编写一个函数,它遍历一个元组列表 (int * int),如果元组的第一个值是 int 0,则添加元组的第二个值。然而,我想出了以下代码,它在每种情况下都会引发异常,有人能指出函数中的错误是什么吗?提前致谢!
let rec tup x = match x with (a,b)::t -> if a > 0 then b + tup(t) else 0 + tup(t) | []->failwith("a");;
test case: (int * int) list = [(0, 2); (1, 10); (0, 20)] should return 10
【问题讨论】: