我正在使用Ocaml实现这个hoemwork功能:
List
模块'a list list -> 'a list
[[1,2,3],[45]] => [1,2,3,4,5]
和[[[1,2,3],[4,5]],[[6,7]]] => [[1,2,3],[4,5],[6,7]]
我不知道从哪里开始,有人能给我一些建议吗?谢谢
答案 0 :(得分:6)
我没有看到List.flatten
与您的功能之间存在差异。
回答你的问题:像往常一样,尝试考虑基本情况:
将所有东西包裹成模式匹配,煮几个小时,然后就完成了: - )
答案 1 :(得分:2)
let rec myappend a b =
match a with
| [] -> (* Empty list prefixed to b (easy case) *)
| ahead :: atail -> (* Recursive case *)
使用您自己的追加功能,您可以执行另一级别的递归 如托马斯建议的那样附上所有顶级名单。