RosettaCodeData/Task/Balanced-brackets/Standard-ML/balanced-brackets-1.ml
2016-12-05 22:15:40 +01:00

7 lines
359 B
OCaml

fun isBalanced s = checkBrackets 0 (String.explode s)
and checkBrackets 0 [] = true
| checkBrackets _ [] = false
| checkBrackets ~1 _ = false
| checkBrackets counter (#"["::rest) = checkBrackets (counter + 1) rest
| checkBrackets counter (#"]"::rest) = checkBrackets (counter - 1) rest
| checkBrackets counter (_::rest) = checkBrackets counter rest