1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
fn putnumln(n: int) -> void = do putnum(n); putchar('\n'); end in fn fact(n: int) -> int = let acc: int = 1 in do while n != 0 do acc = acc * n; n = n - 1; end; acc; end in putnumln(fact(getnum()))