[back]

Split At

Implement the function

val split_at : 'a list -> int -> 'a list * 'a list

so that split_at l index returns a pair of lists (a, b) such that a @ b = l and List.length a = min (max 0 index) (List.length l).

Examples

let _ = assert (split_at [1;2;3] (-10) = ([], [1;2;3]))
let _ = assert (split_at [1;2;3;4;5] 2 = ([1;2], [3;4;5]))
let _ = assert (split_at [1;2;3;4;5] 10 = ([1;2;3;4;5], []))