Я хочу создать функцию типа int -> 'a list -> 'a list list
Вызов функции:
grupper 2 [3, 1, 4, 1, 5, 9]
должен вернуть [[3, 1], [4, 1], [5, 9]]
grupper 4 [3, 1, 4, 1, 5, 9]
должен вернуть [[3, 1, 4, 1], [5, 9]]
grupper 42 [3, 1, 4, 1, 5, 9]
вернет [[3, 1, 4, 1, 5, 9]]
.
Я получил это до сих пор
fun grupper _ [] = []
| grupper n (x::xs) = if n > length(x::xs) then [x::xs]
else [List.take(x::xs, n)] @ grupper (n) xs
помогите, пожалуйста.