使用ML中的foldr函数合并列表列表

时间:2014-11-13 14:32:18

标签: merge sml fold ml

如果我有一组列表,例如[[1,2,4],[3],[0,9,8] ...],并且假定例程'merge'是预定义的,我该如何合并这些列表使用foldr函数列入一个列表?

foldr的语法是:foldr f init [...];我很困惑在这种情况下初始条件应该是什么。

任何帮助将不胜感激, 感谢。

1 个答案:

答案 0 :(得分:0)

使用foldr来实现此目的,您将使用foldr (fn (xs, result) => ...) initial xss其中initial是要合并的操作数之一(它作为第一个result合并而合并的结果作为后续result s。。也就是说,它的类型是一个列表,它应该具有将它与第一个子列表合并的属性应该只产生第一个子列表。只有一个列表可以做到这一点。