[back]

Packing

Implement the function

val pack : 'a list -> 'a list list

so that pack l packs together consecutive elements of l that are equal into a sublist.

Examples

let _ = assert (pack [] = [])
let _ = assert (pack [1] = [[1]])
let _ = assert (pack [1;1;2;3;3;2;4;4;4] = [[1;1];[2];[3;3];[2];[4;4;4]])
let _ = assert (pack [1;2;3] = [[1];[2];[3]])