添加列表列表

问题描述 投票:0回答:1

我是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;
list sml fold
1个回答
0
投票

我建议您首先尝试编写一个函数,将所有数字添加到一个整数列表中,并将此数字添加到起始值(提示:这也可以使用折叠完成)。

然后,您可以使用此函数作为函数参数折叠以实现您的目标。

© www.soinside.com 2019 - 2024. All rights reserved.