На правах развлечения в пятничный вечер.
P. S. Решение на вашем любимом ЯП приветствуется )
<br>bracket("]") --> "[".<br>bracket(")") --> "(".<br>bracket("}") --> "{".<br><br>brackets --> bracket(Close), brackets, Close, brackets.<br>brackets --> [].<br><br>check(BracesStr) :-<br> phrase(brackets, BracesStr), !.<br>
?- check("[[[]]][][[]][()]{}[]").
true.
?- check("[[[)]]][][[]][()]{}[]").
false.
P. S. Решение на вашем любимом ЯП приветствуется )