let fx = [ |
| ]
let foo x =
printfn "\n Enter a label: "
x := System.Console .ReadLine ( ) |> int
let ix = Array.create fx.Length 0
let label = ref 0
printfn "label = %i" ! label
let rec loop i =
if i >= ix.Length then
foo label
printfn "newlabel = %i" ! label
next ! label
else
ix.[ i] <- 0
snd fx.[ i] <| ix.[ i]
loop ( i + 1 )
and next n =
let n = n - 1
if n < 0 || n >= fx.Length then printfn "The end!" else
ix.[ n] <- ix.[ n] + 1
if ix.[ n] |> fst fx.[ n] then next n else
snd fx.[ n] <| ix.[ n]
loop ( n + 1 )
loop 0
bGV0IGZ4ID0gW3wKICAgICg9KSA1LCBmdW4gaSAtPiBwcmludGYgIjEiCiAgICAoPSkgMywgZnVuIGsgLT4gcHJpbnRmICIyIgogICAgKD0pIDMsIGZ1biBsIC0+IHByaW50ZiAiMyIKICAgICg9KSA1LCBmdW4gbSAtPiBwcmludGYgIjQiCiAgICAoPSkgMywgZnVuIG4gLT4gcHJpbnRmICI1IgogICAgfF0KCmxldCBmb28geCA9IAogICAgICAgIHByaW50Zm4gIlxuRW50ZXIgYSBsYWJlbDogIgogICAgICAgIHggOj0gU3lzdGVtLkNvbnNvbGUuUmVhZExpbmUoKSB8PiBpbnQKCmxldCBpeCA9IEFycmF5LmNyZWF0ZSBmeC5MZW5ndGggMApsZXQgbGFiZWwgPSByZWYgMApwcmludGZuICJsYWJlbCA9ICVpIiAhbGFiZWwKbGV0IHJlYyBsb29wIGkgPSAKICAgIGlmIGkgPj0gaXguTGVuZ3RoIHRoZW4KICAgICAgICBmb28gbGFiZWwKICAgICAgICBwcmludGZuICJuZXdsYWJlbCA9ICVpIiAhbGFiZWwKICAgICAgICBuZXh0ICFsYWJlbAogICAgZWxzZSAKICAgICAgICBpeC5baV0gPC0gMCAKICAgICAgICBzbmQgZnguW2ldIDx8IGl4LltpXQogICAgICAgIGxvb3AgKGkgKyAxKQphbmQgbmV4dCBuID0gCiAgICBsZXQgbiA9IG4gLSAxCiAgICBpZiBuIDwgMCB8fCBuID49IGZ4Lkxlbmd0aCB0aGVuIHByaW50Zm4gIlRoZSBlbmQhIiBlbHNlIAogICAgaXguW25dIDwtIGl4LltuXSArIDEKICAgIGlmIGl4LltuXSB8PiBmc3QgZnguW25dIHRoZW4gbmV4dCBuIGVsc2UgCiAgICBzbmQgZnguW25dIDx8IGl4LltuXQogICAgbG9vcCAobiArIDEpCmxvb3AgMAo=