#!/usr/local/bin/gosh (define (balanced-brackets string) (define (b chars sum) (cond ((and (null? chars) (= 0 sum)) #t) ((null? chars) #f) ((char=? #\[ (car chars)) (b (cdr chars) (+ sum 1))) ((= sum 0) #f) (else (b (cdr chars) (- sum 1))))) (b (string->list string) 0)) (display (balanced-brackets "")) (display (balanced-brackets "[]")) (display (balanced-brackets "[][]")) (display (balanced-brackets "[[][]]")) (newline) (display (balanced-brackets "][")) (display (balanced-brackets "][][")) (display (balanced-brackets "[]][[]")) (newline)