fun fence s [] =
if s >= 3 then
[[]]
else
[]
| fence s (x :: xs) =
if s mod 2 = 0 then
map
(fn ys => x :: ys)
(fence (s + 1) xs)
@
fence s xs
(fence s xs)
fence (s + 1) xs
fun ncsubseq xs = fence 0 xs