module "/pliant/language/context.pli" function ack m n -> r arg Int m n r if m=0 return (n + 1) eif n=0 return (ack m-1 1) else return (ack m-1 (ack m n-1)) gvar Str s_n := cast ((pliant_script_args translate Address 1) map CStr) Str if (s_n parse (gvar Int n)) console "Ack(3," n "): " (ack 3 n) eol else console "usage: ack.pli <number>" eol