在OCaml中展平列表列表

All*_*ang 0 ocaml functional-programming list

我正在使用Ocaml实现这个hoemwork功能:

  • 不允许使用List模块
  • 该函数有类型 'a list list -> 'a list
  • 该函数返回一个列表,该列表由x中的列表连接在一起(只是顶级列表连接在一起,与List.flatten不同)
  • 例如:[[1,2,3],[45]] => [1,2,3,4,5][[[1,2,3],[4,5]],[[6,7]]] => [[1,2,3],[4,5],[6,7]]

我不知道从哪里开始,有人能给我一些建议吗?谢谢

Tho*_*mas 6

我没有看到List.flatten你和你的功能之间的区别.

要回答你的问题:像往常一样使用列表,尝试考虑基本情况:

  • 当你将空列表连接起来时,你会怎么做?
  • 当你将一个非空列表(头部和尾部)与某些内容连接起来时,你会怎么做?

将所有东西包裹成模式匹配,煮几个小时,然后就完成了:-)