RosettaCodeData/Task/Non-continuous-subsequences/OCaml/non-continuous-subsequences.ocaml

23 lines
384 B
Text
Raw Permalink Normal View History

2013-04-10 23:57:08 -07:00
let rec fence s = function
[] ->
if s >= 3 then
[[]]
else
[]
| x :: xs ->
if s mod 2 = 0 then
List.map
(fun ys -> x :: ys)
(fence (s + 1) xs)
@
fence s xs
else
List.map
(fun ys -> x :: ys)
(fence s xs)
@
fence (s + 1) xs
let ncsubseq = fence 0