21 lines
367 B
Standard ML
21 lines
367 B
Standard ML
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
|
|
else
|
|
map
|
|
(fn ys => x :: ys)
|
|
(fence s xs)
|
|
@
|
|
fence (s + 1) xs
|
|
|
|
fun ncsubseq xs = fence 0 xs
|