寝る前に OCaml でなんか書いてみるか、と思って書いてみた。 exception Unexpected_char let interpret str = (* バッファ *) let buf = Array.create 3000 0 in (* 対応する右括弧(])を探しに行く *) let rec rp idx n = match String.get str idx with | '[' -> rp (idx+1) (n+1) | ']' -> if n=0 then idx else rp (idx+1) (n-1) | _ -> rp (idx+1) n (* 対応する左括弧([)を探しに行く *) and lp idx n = match String.get str idx with | '[' -> if n=0 then idx else lp (idx-1) (n-