Бих искал да направя функция, която приема списък и връща два списъка: първият съдържа всеки нечетен елемент, а вторият съдържа всеки четен елемент.
Например, ако има [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 [] []
List.partition
използва предикат и в този случай няма подходящ предикат. - person J D   schedule 21.02.2012