RosettaCodeData/Task/Man-or-boy-test/Standard-ML/man-or-boy-test.ml
Ingy döt Net d066446780 langs a-z
2013-04-10 22:43:41 -07:00

15 lines
301 B
Standard ML

fun a (k, x1, x2, x3, x4, x5) =
if k <= 0 then
x4 () + x5 ()
else let
val m = ref k
fun b () = (
m := !m - 1;
a (!m, b, x1, x2, x3, x4)
)
in
b ()
end
val () =
print (Int.toString (a (10, fn () => 1, fn () => ~1, fn () => ~1, fn () => 1, fn () => 0)) ^ "\n")