【问题标题】:adding lists of lists添加列表列表
【发布时间】:2018-07-28 15:21:08
【问题描述】:

我是 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】:

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

    然后您可以将此函数用作函数参数来折叠以实现您的目标。

    【讨论】:

    • 我为 listSum 函数添加了代码,它将列表中的所有项目加在一起。但是如何将它用作添加列表列表的函数参数?
    • @TrashMachine139:你弃牌。
    • 谢谢,我想通了。一旦我意识到解决方案,我总是觉得有点愚蠢。非常感谢! @SimonShine
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 2023-03-20
    相关资源
    最近更新 更多