RosettaCodeData/Task/Man-or-boy-test/Standard-ML/man-or-boy-test.ml
2023-07-01 13:44:08 -04: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")