首页 > 解决方案 > 如何创建一个函数,该函数返回一个列表,该列表是 Ocaml 中嵌套列表的元素的联合?

问题描述

如果在 Ocaml 的列表中给我一组列表,例如 [[3;1;3]; [4];[1;2;3]],那么我们如何实现一个函数来返回一个列表,该列表是嵌套列表的值的并集(因此示例的输出将返回 [1;2;3;4]) ? 我尝试从列表中删除重复项,但它没有按预期工作。我也仅限于使用 List 模块。

标签: listfunctional-programmingocaml

解决方案


仅限于使用List模块?听起来像这样的任意限制的作业。所以我不想给出一个完全可行的解决方案。但是,如果您查看List文档,您会看到一些可以组合起来做您想做的事情的功能。

concat,它获取一个列表并将它们展平为一个列表,并且sort_uniq,它对列表进行排序并删除重复项。

因此,您只需获取列表列表,将其转换为单个列表,然后sort_uniq(使用适当的比较功能)即可获得所需的结果。


推荐阅读