RosettaCodeData/Task/Balanced-brackets/Aime/balanced-brackets.aime

36 lines
472 B
Plaintext

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;
}