Разделение списка элементов на два списка нечетных и четных проиндексированных элементов

Я хотел бы создать функцию, которая принимает список и возвращает два списка: первый содержит каждый нечетный элемент, а второй содержит каждый четный элемент.

Например, для [1; 2; 4; 6; 7; 9] я хотел бы вернуть [[1; 4; 7]; [2; 6; 9]] .

Я написал это до сих пор и не знаю, как развиваться.

let splitList list =
    let rec splitOdd oList list1 list2 =
        match oList with
        | [] -> []
        | head :: tail -> splitEven tail (list1::head) list2
    and splitEven oList list1 list2 =
        match oList with
        | [] -> []
        | head :: tail -> splitOdd tail list1 (list2::head)
    splitOdd list [] []
16
задан Guy Coder 4 March 2016 в 15:49
поделиться