Я пытаюсь суммировать внутри кортежа, используя шаблон соответствия. Вот что я сделал
let rec sum = function
| [] -> (0,0,0,0)
| obj::rest -> let (cc, cd, cr, ca) = sum rest in
(obj#method1 + cc, obj#method2 + cd
obj#method3 + cr, obj#method4 + ca) in
Эта рекурсивная функция может принимать список объектов и возвращать кортеж, например (12893, 82382, 182942, 348934)
Я получил ошибку This 'object' might be unmatched
. Как можно решить эту проблему?
ОБНОВЛЕНИЕ
method the_method (pays:string) =
let obj_list = self#return_data_country
let rec sum = function
| [] -> (0,0,0,0)
| obj::rest -> let (cc, cd, cr, ca) = sum rest in
(obj#method1 + cc, obj#method2 + cd
obj#method3 + cr, obj#method4 + ca) in
let sum_cc, sum_cd, sum_cr, sum_ca = sum obj_list in
let basic_info = (nth obj_list 0) in
("\nCountry : " ^ basic_info#method5 ^ "\n" ^
"UPDATE: " ^ basic_info#method6 ^ "\n" ^
"CC: " ^ string_of_int sum_cc ^ "\n" ^
"CD: " ^ string_of_int sum_cd ^ "\n" ^
"CR: " ^ string_of_int sum_cr ^ "\n" ^
"CA: " ^ string_of_int sum_ca ^ "\n" ^)