32 lines
388 B
Plaintext
32 lines
388 B
Plaintext
brack(s) := block(
|
|
[n: slength(s), r: 0, c],
|
|
catch(
|
|
for i thru n do (
|
|
if cequal(c: charat(s, i), "]") then (if (r: r - 1) < 0 then throw(false))
|
|
elseif cequal(c, "[") then r: r + 1
|
|
),
|
|
is(r = 0)
|
|
)
|
|
)$
|
|
|
|
brack("");
|
|
true
|
|
|
|
brack("[");
|
|
false
|
|
|
|
brack("]");
|
|
false
|
|
|
|
brack("[]");
|
|
true
|
|
|
|
brack("][");
|
|
false
|
|
|
|
brack("[[][]]");
|
|
true
|
|
|
|
brack("[[[]][]]]");
|
|
false
|