void m3(integer i) { text s; s = itoa(i); if (s[0] == '-') { s = delete(s, 0); } if (~s < 3) { v_integer(i); v_text(" has not enough digits\n"); } elif (~s & 1) { o_form("/w9/: ~\n", i, cut(s, ~s - 3 >> 1, 3)); } else { v_integer(i); v_text(" has an even number of digits\n"); } } void middle_3(...) { integer i; i = 0; while (i < count()) { m3($i); i += 1; } } integer main(void) { middle_3(123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345, 1, 2, -1, -10, 2002, -2002, 0); return 0; }