RosettaCodeData/Task/Balanced-brackets/Qi/balanced-brackets.qi

22 lines
482 B
Plaintext

(define balanced-brackets-0
[] 0 -> true
[] _ -> false
[#\[|R] Sum -> (balanced-brackets-0 R (+ Sum 1))
_ 0 -> false
[_ |R] Sum -> (balanced-brackets-0 R (- Sum 1)))
(define balanced-brackets
"" -> true
S -> (balanced-brackets-0 (explode (INTERN S)) 0))
(balanced-brackets "")
(balanced-brackets "[]")
(balanced-brackets "[][]")
(balanced-brackets "[[][]]")
(balanced-brackets "][")
(balanced-brackets "][][")
(balanced-brackets "[]][[]")