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
My 2¢, in OCaml, since there still is a bounty open.
Maybe you could give us a hint what you want. Elegance? FP? Tail recursion? Performance?
Edit:
I removed the longer solution. For List.partition to work, the predicate was missing. Here it is:
let so_split lst =
let flag = ref false in
List.partition (fun e -> flag := not !flag; !flag) lst
Improvements any? Testing the solution:
# so_split [1;2;4;6;7;9];;
- : int list * int list = ([1; 4; 7], [2; 6; 9])