Итак, у меня есть этот код, который в основном разделит список на k элементов.Так что если есть список [1; 2; 3; 4; 5; 6; 7], и я хочу разделить первые k = 3 элемента, то он разделит список на [1; 2; 3] и [4; 5; 6; 7].
Я хочу вернуть оба из них, поэтому я планирую поместить их в список списков, ИЛИ было бы еще лучше поместить их в кортеж из 2 списков.Итак, я возвращаюсь [[1; 2; 3];[4; 5; 6; 7]] или ([1; 2; 3], [4; 5; 6; 7]).
Я также попытался сделать это, превратив два списка в кортежи,но я не мог понять, как вернуть пустые кортежи списков для последнего совпадения с образцом.
Кроме того, я знаю, что это можно сделать проще с помощью некоторой функции .take или .split, но я 'Я пытаюсь понять F #, поэтому я делаю это так.
Но, пожалуйста, помогите!Моя ошибка: ожидал '' a '
, но получил' 'список'
let populateList k =
let data = [1;2;3;4;5;6;7]
let rec helper count aList =
match aList with
| head::tail when count < k ->
let theTail = tail
let newList = head :: helper (count+1) tail
//let aTuple = (theTail,newList)
//aTuple
[theTail; newList]
| _ -> []
helper 0 data
populateList 3