List.skipとList.takeがないのはなぜですか?もちろんSeq.takeとSeq.skipはありますが、結果としてリストは作成されません。
考えられる解決策の1つは、mylist |> Seq.skip N |> Seq.toListです。ただし、これにより、最初の列挙子が作成され、次にその列挙子から新しいリストが作成されます。不変リストから不変リストを作成するもっと直接的な方法があると思います。内部には要素のコピーがないため、新しいリストから元のリストへの参照のみがあります。
(例外をスローせずに)他の可能な解決策は次のとおりです。
let rec listSkip n xs =
match (n, xs) with
| 0, _ -> xs
| _, [] -> []
| n, _::xs -> listSkip (n-1) xs
しかし、これはまだ質問に答えていません...