21 lines
527 B
Factor
21 lines
527 B
Factor
USING: combinators formatting kernel math random sequences strings ;
|
|
IN: rosetta-code.balanced-brackets
|
|
|
|
: balanced? ( str -- ? )
|
|
0 swap [
|
|
{
|
|
{ CHAR: [ [ 1 + t ] }
|
|
{ CHAR: ] [ 1 - dup 0 >= ] }
|
|
[ drop t ]
|
|
} case
|
|
] all? swap zero? and ;
|
|
|
|
: bracket-pairs ( n -- str )
|
|
[ "[]" ] replicate "" concat-as ;
|
|
|
|
: balanced-brackets-main ( -- )
|
|
5 bracket-pairs randomize dup balanced? "" "not " ?
|
|
"String \"%s\" is %sbalanced.\n" printf ;
|
|
|
|
MAIN: balanced-brackets-main
|