Sublists
A sublist of a list l is a list containing a sequence of the
elements in l, in the same order as they appear in l, e.g.,
[1;2], [2;3], [], and [1;3] are sublists of the list
[1;2;3].
Implement the function
val sublists : 'a list -> 'a list list
so that sublists l is the list of all sublists of l.
Examples
let _ = assert (sublists [] = [[]]) let _ = assert (List.length (sublists [1]) = 2) let _ = assert (List.mem [] (sublists [1])) let _ = assert (List.mem [1] (sublists [1])) let _ = assert (List.length (sublists [1;2;3]) = 8) let _ = assert (List.mem [1;2] (sublists [1;2;3])) let _ = assert (List.mem [2;3] (sublists [1;2;3])) let _ = assert (List.mem [1;3] (sublists [1;2;3])) let _ = assert (List.mem [] (sublists [1;2;3]))