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

36 lines
472 B
Text
Raw Permalink Normal View History

2017-09-23 10:01:46 +02:00
unbalanced(data s)
2013-06-05 21:47:54 +00:00
{
integer b, i;
2019-09-12 10:33:56 -07:00
b = i = 0;
while (i + ~s && -1 < b) {
b += s[i -= 1] == '[' ? -1 : 1;
2013-06-05 21:47:54 +00:00
}
2019-09-12 10:33:56 -07:00
b;
2013-06-05 21:47:54 +00:00
}
2019-09-12 10:33:56 -07:00
generate(data b, integer d)
2013-06-05 21:47:54 +00:00
{
2019-09-12 10:33:56 -07:00
if (d) {
d.times(l_bill, list(), -1, '[', ']').l_rand().ucall(b_append, 1, b);
}
2013-06-05 21:47:54 +00:00
}
main(void)
{
integer i;
i = 0;
while (i < 10) {
2019-09-12 10:33:56 -07:00
data s;
2013-06-05 21:47:54 +00:00
2019-09-12 10:33:56 -07:00
generate(s, i);
o_(s, " is ", unbalanced(s) ? "un" : "", "balanced\n");
2013-06-05 21:47:54 +00:00
i += 1;
}
2019-09-12 10:33:56 -07:00
0;
2013-06-05 21:47:54 +00:00
}