1

如何实现一个sum_matrix可以这样使用的功能?

let m = [[1;2;3]; [4;5;6]];; 
sum_matrix( [[1;2;3]; [4;5;6]]);;

不使用匹配,或将列表与空列表进行比较。应该使用折叠。

我了解如何使用两个单独的列表来做到这一点,但矩阵方面增加了我不理解的深度。此外,OCaml 是如何真正接受这样的参数的?

4

1 回答 1

3

功能

let sum li = List.fold_left (fun acc elem -> acc + elem) 0 li

添加列表的所有元素(它们必须是整数)。

功能

let sum_apply f li = List.fold_left (fun acc elem -> acc + f elem) 0 li

计算应用于f输入列表的每个元素的总和:sum_apply f [x;y;z]is f x + f y + f z- 这也可以使用sumand来实现List.map

你知道如何结合这两个函数来得到一个整数的总和int list list吗?

于 2013-06-11T08:15:38.723 回答