fn fact(n) { if (n < 2) return 1; return n * fact(n - 1); } // prints in binary, like the old asm example fn bin(n) { if (n > 1) bin(n >> 1); put_c('0' + (n & 1)); return 0; } fn main() { bin(fact(10)); put_c(10); put_n(fact(10)); put_c(10); return 0; }