I would like to make a function that accepts a list and returns two lists: the first contains every odd item, and the second contains every even item.
For example, g
Here is a straightforward non-recursive solution:
let splitList ll =
ll
|> List.mapi (fun i x -> (i % 2 = 0, x))
|> List.partition fst
|> fun (odd,even) -> [List.map snd odd, List.map snd even];;
val splitList : 'a list -> 'a list list
Being applied to your sample it yields exactly what you wanted:
splitList [1;2;4;6;7;9];;
val it : int list list = [[1; 4; 7]; [2; 6; 9]]