我是SML的新手,正在研究一些列表算法。我试图使用fold函数一起添加列表列表,没有任何迭代。这个想法是
[[1,2,3],[4],[1]] = 11
这是我正在使用的折叠功能
fun fold f base [] = base
| fold f base (x::xs) = f x (fold f base xs);
因为我正在使用折叠,我不确定是否有办法使用折叠功能将列表列表列为一个列表,然后很容易将它们添加到一起,或者如果我只是完全错过了球。
以下是添加的功能,它们将单个列表的内容相加。
fun add x y = x+y;
fun sumList L = fold add 0 L;
我建议您首先尝试编写一个函数,将所有数字添加到一个整数列表中,并将此数字添加到起始值(提示:这也可以使用折叠完成)。
然后,您可以使用此函数作为函数参数折叠以实现您的目标。