import system'routines; import extensions; import extensions'text; randomBrackets(len) { if (0 == len) { ^ EmptyString } else { var brackets := Array.allocate(len).populate::(i => $91) + Array.allocate(len).populate::(i => $93); brackets := brackets.randomize(len * 2); ^ brackets.summarize(new StringWriter()).toString() } } extension op { get isBalanced() { var counter := new Integer(0); self.seekEach::(ch => counter.append((ch==$91).iif(1,-1)) < 0); ^ (0 == counter) } } public Program() { for(int len := 0; len < 9; len += 1) { var str := randomBrackets(len); Console.printLine("""",str,"""",str.isBalanced ? " is balanced" : " is not balanced") }; Console.readChar() }