type MyType = {a:int; b:int};;
let test = [{a=5;b=10}; {a=10;b=100}; {a=200; b=500}; {a=100; b=2}];;
我想创建一个函数,它将对以下内容进行汇总。a
和 b
这样它将显示
Sum of a : 315
Sum of b : 612
我想我必须使用一个递归函数。这是我的尝试。
let my_func record =
let adds = [] in
let rec add_func = match adds with
| [] -> record.a::adds; record.b::adds
| _ -> s + add_func(e::r)
add_func test;;
这个函数似乎根本不起作用。有没有正确的方法来做这样的函数?
好的,你知道你在做什么,我想你只是需要一个建议。
假设你的函数名为 sumab
并返回一对ints。那么你的递归函数中的关键表达式将是这样的。
| { a = ha; b = hb; } :: t ->
let (a, b) = sumab t in (ha + a, hb + b)