; some useful string functions (define x (make-string 20 #\x)) x (string-length x) (string=? "abc" "abc") (string=? "abc" "ABC") (string-ci=? "abc" "ABC") (string->symbol "x") (symbol->string 'x) (string->number "100") (number->string 100) (string->number "1e10") ; you can specify the radix for the conversion (string->number "100" 2) (string->number "100" 10) (string->number "100" 16) ; Dr. Scheme supports some extensions that are useful (define h "hello, world") ; string literals are considered immutable (immutable? h) (string-length h) (substring h 0 5) ;(string-copy! g 0 "goodbye") (string-upcase "abc") (string-downcase "ABC") (string-append "abc" "def") (string->list "abcdef") (list->string '(#\1 #\2 #\3 #\4 #\5)) (define hh (string-copy h)) (string-copy! hh 0 "goodbye") hh ; Keywords beginning with a #: behave like symbols (define x 1) (keyword? x) (keyword? #:x) (keyword->string #:x) (string->keyword (symbol->string 'x)) (define (make-setter-name name) (string->symbol (string-append "set!" (symbol->string name)))) (define (make-getter-name name) (string->symbol (string-append "get:" (symbol->string name)))) (make-setter-name 'x) (make-getter-name 'x)