Почему нет List.skip и List.take? Конечно, Seq.take и Seq.skip, но в результате они не создают списки.
Одно из возможных решений: mylist | > Seq.skip N | > Seq.toList Но это создает первый счетчик, а затем новый список из этого перечислителя. Я думаю, что может быть более прямой способ создания неизменяемого списка из непреложного списка. Поскольку внутри копии нет элементов внутри, есть только ссылки из нового списка на оригинальный.
Другое возможное решение (без исключений):
let rec listSkip n xs =
match (n, xs) with
| 0, _ -> xs
| _, [] -> []
| n, _::xs -> listSkip (n-1) xs
Но это еще не ответит на вопрос...