unbalanced(data s) { integer b, i; b = i = 0; while (i + ~s && -1 < b) { b += s[i -= 1] == '[' ? -1 : 1; } b; } generate(data b, integer d) { if (d) { d.times(l_bill, list(), -1, '[', ']').l_rand().ucall(b_append, 1, b); } } main(void) { integer i; i = 0; while (i < 10) { data s; generate(s, i); o_(s, " is ", unbalanced(s) ? "un" : "", "balanced\n"); i += 1; } 0; }