Balanced brackets: Difference between revisions
Content added Content deleted
Line 1,446: | Line 1,446: | ||
#define extensions. |
#define extensions. |
||
#symbol randomBrackets = |
#symbol randomBrackets = |
||
{ |
|||
⚫ | |||
new : aLength |
|||
= (0 == aLength) |
|||
? [ emptyLiteralValue ] |
|||
! [ |
|||
#var aBrackets := |
|||
Array new &length:(aLength int) set &every: (&index:i) [ #91 ] |
|||
+ |
|||
Array new &length:(aLength int) set &every: (&index:i)[ #93 ]. |
|||
⚫ | |||
⚫ | |||
]. |
|||
⚫ | |||
#class(extension)op |
|||
{ |
|||
#method isBalanced |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
] |
|||
} |
|||
⚫ | |||
#symbol isBalanced = (:aLiteral) |
|||
[ |
|||
⚫ | |||
⚫ | |||
⚫ | |||
]. |
|||
#symbol program = |
#symbol program = |
||
[ |
[ |
||
0 to:9 &doEach: (:aLength) |
|||
[ |
[ |
||
#var anStr := randomBrackets:aLength. |
#var anStr := randomBrackets new:aLength. |
||
#var balanced := isBalanced:anStr. |
|||
console writeLine:"""":anStr:"""":((anStr isBalanced) => true ? [ " is balanced" ] false ? [ " is not balanced" ]). |
|||
]. |
]. |
||
console readChar. |
console readChar. |
||
].</lang> |
].</lang> |
||
{{out}} |
|||
<pre> |
|||
"" is balanced |
|||
"[]" is balanced |
|||
"][[]" is not balanced |
|||
"[[[]]]" is balanced |
|||
"][[[]]][" is not balanced |
|||
"[]]]][[[][" is not balanced |
|||
"[[]][][[]]][" is not balanced |
|||
"[][]]]]][[[[][" is not balanced |
|||
"][]]][[[[][[][]]" is not balanced |
|||
"][]][][[]]][[[]][[" is not balanced |
|||
</pre> |
|||
=={{header|Erlang}}== |
=={{header|Erlang}}== |