fact.s
381 Bytes
fact = map (i) [
? [ i<0 -> return 0
| i=0 -> return 1
| * -> return i * fact (i-1) ]
];
ifact = map (i) [
res := 1;
k := i;
* [ k > 0 -> res := res*k;
k := k-1 ];
return (res)
];
program = map () -> () [
* [ readBool() -> i := readInt (); writeInt (i); writeChar(10);
writeInt (ifact (i)); writeChar(32);
writeInt (fact (i)); writeChar(10) ] ]